twilio-ruby 3.11.5 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (435) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +4 -1
  3. data/.rubocop.yml +21 -0
  4. data/.rubocop_todo.yml +187 -0
  5. data/.travis.yml +10 -10
  6. data/AUTHORS.md +21 -0
  7. data/CHANGES.md +351 -0
  8. data/Gemfile +8 -1
  9. data/{LICENSE → LICENSE.md} +13 -11
  10. data/Makefile +15 -3
  11. data/README.md +90 -95
  12. data/Rakefile +59 -7
  13. data/VERSIONS.md +64 -0
  14. data/examples/examples.rb +62 -49
  15. data/examples/{print-call-log.rb → print_call_log.rb} +7 -7
  16. data/lib/rack/twilio_webhook_authentication.rb +46 -0
  17. data/lib/twilio-ruby/framework/domain.rb +34 -0
  18. data/lib/twilio-ruby/framework/error.rb +30 -0
  19. data/lib/twilio-ruby/framework/helper.rb +9 -0
  20. data/lib/twilio-ruby/framework/page.rb +101 -0
  21. data/lib/twilio-ruby/framework/resource.rb +21 -0
  22. data/lib/twilio-ruby/framework/serialize.rb +70 -0
  23. data/lib/twilio-ruby/framework/twilio_response.rb +15 -0
  24. data/lib/twilio-ruby/framework/values.rb +7 -0
  25. data/lib/twilio-ruby/framework/version.rb +164 -0
  26. data/lib/twilio-ruby/http/http_client.rb +46 -0
  27. data/lib/twilio-ruby/jwt/access_token.rb +232 -0
  28. data/lib/twilio-ruby/jwt/client_capability.rb +102 -0
  29. data/lib/twilio-ruby/jwt/jwt.rb +50 -0
  30. data/lib/twilio-ruby/jwt/task_router.rb +174 -0
  31. data/lib/twilio-ruby/rest/accounts/v1/credential/public_key.rb +370 -0
  32. data/lib/twilio-ruby/rest/accounts/v1/credential.rb +105 -0
  33. data/lib/twilio-ruby/rest/accounts/v1.rb +39 -0
  34. data/lib/twilio-ruby/rest/accounts.rb +36 -9
  35. data/lib/twilio-ruby/rest/api/v2010/account/address/dependent_phone_number.rb +265 -0
  36. data/lib/twilio-ruby/rest/api/v2010/account/address.rb +509 -0
  37. data/lib/twilio-ruby/rest/api/v2010/account/application.rb +620 -0
  38. data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +331 -0
  39. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +389 -0
  40. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +389 -0
  41. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +389 -0
  42. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number.rb +370 -0
  43. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +296 -0
  44. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb +317 -0
  45. data/lib/twilio-ruby/rest/api/v2010/account/call/notification.rb +427 -0
  46. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +379 -0
  47. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +799 -0
  48. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +515 -0
  49. data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +455 -0
  50. data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +413 -0
  51. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +445 -0
  52. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +445 -0
  53. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +445 -0
  54. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +786 -0
  55. data/lib/twilio-ruby/rest/api/v2010/account/key.rb +336 -0
  56. data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +165 -0
  57. data/lib/twilio-ruby/rest/api/v2010/account/message/media.rb +355 -0
  58. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +583 -0
  59. data/lib/twilio-ruby/rest/api/v2010/account/new_key.rb +153 -0
  60. data/lib/twilio-ruby/rest/api/v2010/account/new_signing_key.rb +153 -0
  61. data/lib/twilio-ruby/rest/api/v2010/account/notification.rb +418 -0
  62. data/lib/twilio-ruby/rest/api/v2010/account/outgoing_caller_id.rb +377 -0
  63. data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +345 -0
  64. data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +438 -0
  65. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +378 -0
  66. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result.rb +397 -0
  67. data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +375 -0
  68. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +479 -0
  69. data/lib/twilio-ruby/rest/api/v2010/account/short_code.rb +430 -0
  70. data/lib/twilio-ruby/rest/api/v2010/account/signing_key.rb +336 -0
  71. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list/credential.rb +395 -0
  72. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list.rb +419 -0
  73. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +361 -0
  74. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +361 -0
  75. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +570 -0
  76. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +406 -0
  77. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +424 -0
  78. data/lib/twilio-ruby/rest/api/v2010/account/sip.rb +174 -0
  79. data/lib/twilio-ruby/rest/api/v2010/account/token.rb +168 -0
  80. data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +366 -0
  81. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +304 -0
  82. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +304 -0
  83. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +304 -0
  84. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +304 -0
  85. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +304 -0
  86. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +304 -0
  87. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +304 -0
  88. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +304 -0
  89. data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +418 -0
  90. data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +507 -0
  91. data/lib/twilio-ruby/rest/api/v2010/account/usage.rb +127 -0
  92. data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +161 -0
  93. data/lib/twilio-ruby/rest/api/v2010/account.rb +1098 -0
  94. data/lib/twilio-ruby/rest/api/v2010.rb +147 -0
  95. data/lib/twilio-ruby/rest/api.rb +234 -0
  96. data/lib/twilio-ruby/rest/chat/v1/credential.rb +403 -0
  97. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +386 -0
  98. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +431 -0
  99. data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +447 -0
  100. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +554 -0
  101. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +396 -0
  102. data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +244 -0
  103. data/lib/twilio-ruby/rest/chat/v1/service/user.rb +467 -0
  104. data/lib/twilio-ruby/rest/chat/v1/service.rb +935 -0
  105. data/lib/twilio-ruby/rest/chat/v1.rb +56 -0
  106. data/lib/twilio-ruby/rest/chat/v2/credential.rb +403 -0
  107. data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +386 -0
  108. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +431 -0
  109. data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +447 -0
  110. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +554 -0
  111. data/lib/twilio-ruby/rest/chat/v2/service/role.rb +396 -0
  112. data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +244 -0
  113. data/lib/twilio-ruby/rest/chat/v2/service/user.rb +467 -0
  114. data/lib/twilio-ruby/rest/chat/v2/service.rb +688 -0
  115. data/lib/twilio-ruby/rest/chat/v2.rb +56 -0
  116. data/lib/twilio-ruby/rest/chat.rb +59 -0
  117. data/lib/twilio-ruby/rest/client.rb +307 -215
  118. data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +403 -0
  119. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +386 -0
  120. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +431 -0
  121. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +447 -0
  122. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +554 -0
  123. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +396 -0
  124. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +244 -0
  125. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +467 -0
  126. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +935 -0
  127. data/lib/twilio-ruby/rest/ip_messaging/v1.rb +56 -0
  128. data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +403 -0
  129. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +386 -0
  130. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +431 -0
  131. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +447 -0
  132. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +554 -0
  133. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +396 -0
  134. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +244 -0
  135. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +467 -0
  136. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +688 -0
  137. data/lib/twilio-ruby/rest/ip_messaging/v2.rb +56 -0
  138. data/lib/twilio-ruby/rest/ip_messaging.rb +59 -0
  139. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +224 -0
  140. data/lib/twilio-ruby/rest/lookups/v1.rb +41 -0
  141. data/lib/twilio-ruby/rest/lookups.rb +44 -0
  142. data/lib/twilio-ruby/rest/monitor/v1/alert.rb +398 -0
  143. data/lib/twilio-ruby/rest/monitor/v1/event.rb +381 -0
  144. data/lib/twilio-ruby/rest/monitor/v1.rb +56 -0
  145. data/lib/twilio-ruby/rest/monitor.rb +52 -0
  146. data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +291 -0
  147. data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +129 -0
  148. data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +284 -0
  149. data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +129 -0
  150. data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +291 -0
  151. data/lib/twilio-ruby/rest/pricing/v1/voice/number.rb +208 -0
  152. data/lib/twilio-ruby/rest/pricing/v1/voice.rb +150 -0
  153. data/lib/twilio-ruby/rest/pricing/v1.rb +65 -0
  154. data/lib/twilio-ruby/rest/pricing.rb +54 -0
  155. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +399 -0
  156. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +418 -0
  157. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +461 -0
  158. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +584 -0
  159. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +315 -0
  160. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +230 -0
  161. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +243 -0
  162. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +527 -0
  163. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +461 -0
  164. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_channel.rb +406 -0
  165. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +223 -0
  166. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +226 -0
  167. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +585 -0
  168. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +230 -0
  169. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +475 -0
  170. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +212 -0
  171. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +712 -0
  172. data/lib/twilio-ruby/rest/taskrouter/v1.rb +41 -0
  173. data/lib/twilio-ruby/rest/taskrouter.rb +44 -0
  174. data/lib/twilio-ruby/rest/trunking/v1/trunk/credential_list.rb +345 -0
  175. data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +345 -0
  176. data/lib/twilio-ruby/rest/trunking/v1/trunk/origination_url.rb +430 -0
  177. data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +478 -0
  178. data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +577 -0
  179. data/lib/twilio-ruby/rest/trunking/v1.rb +41 -0
  180. data/lib/twilio-ruby/rest/trunking.rb +44 -0
  181. data/lib/twilio-ruby/rest/video/v1/recording.rb +382 -0
  182. data/lib/twilio-ruby/rest/video/v1/room/recording.rb +381 -0
  183. data/lib/twilio-ruby/rest/video/v1/room.rb +485 -0
  184. data/lib/twilio-ruby/rest/video/v1.rb +56 -0
  185. data/lib/twilio-ruby/rest/video.rb +52 -0
  186. data/lib/twilio-ruby/security/request_validator.rb +54 -0
  187. data/lib/twilio-ruby/twiml/messaging_response.rb +141 -0
  188. data/lib/twilio-ruby/twiml/twiml.rb +69 -0
  189. data/lib/twilio-ruby/twiml/voice_response.rb +916 -0
  190. data/lib/twilio-ruby/util/configuration.rb +7 -0
  191. data/lib/twilio-ruby/util.rb +1 -1
  192. data/lib/twilio-ruby/version.rb +1 -1
  193. data/lib/twilio-ruby.rb +52 -49
  194. data/spec/framework/serialize_spec.rb +59 -0
  195. data/spec/holodeck/holodeck.rb +61 -0
  196. data/spec/holodeck/hologram.rb +4 -0
  197. data/spec/integration/accounts/v1/credential/public_key_spec.rb +226 -0
  198. data/spec/integration/accounts/v1/credential_spec.rb +10 -0
  199. data/spec/integration/api/v2010/account/address/dependent_phone_number_spec.rb +90 -0
  200. data/spec/integration/api/v2010/account/address_spec.rb +267 -0
  201. data/spec/integration/api/v2010/account/application_spec.rb +286 -0
  202. data/spec/integration/api/v2010/account/authorized_connect_app_spec.rb +137 -0
  203. data/spec/integration/api/v2010/account/available_phone_number/local_spec.rb +101 -0
  204. data/spec/integration/api/v2010/account/available_phone_number/mobile_spec.rb +100 -0
  205. data/spec/integration/api/v2010/account/available_phone_number/toll_free_spec.rb +100 -0
  206. data/spec/integration/api/v2010/account/available_phone_number_spec.rb +128 -0
  207. data/spec/integration/api/v2010/account/call/feedback_spec.rb +141 -0
  208. data/spec/integration/api/v2010/account/call/feedback_summary_spec.rb +149 -0
  209. data/spec/integration/api/v2010/account/call/notification_spec.rb +179 -0
  210. data/spec/integration/api/v2010/account/call/recording_spec.rb +178 -0
  211. data/spec/integration/api/v2010/account/call_spec.rb +319 -0
  212. data/spec/integration/api/v2010/account/conference/participant_spec.rb +283 -0
  213. data/spec/integration/api/v2010/account/conference_spec.rb +174 -0
  214. data/spec/integration/api/v2010/account/connect_app_spec.rb +177 -0
  215. data/spec/integration/api/v2010/account/incoming_phone_number/local_spec.rb +181 -0
  216. data/spec/integration/api/v2010/account/incoming_phone_number/mobile_spec.rb +181 -0
  217. data/spec/integration/api/v2010/account/incoming_phone_number/toll_free_spec.rb +181 -0
  218. data/spec/integration/api/v2010/account/incoming_phone_number_spec.rb +331 -0
  219. data/spec/integration/api/v2010/account/key_spec.rb +178 -0
  220. data/spec/integration/api/v2010/account/message/feedback_spec.rb +48 -0
  221. data/spec/integration/api/v2010/account/message/media_spec.rb +162 -0
  222. data/spec/integration/api/v2010/account/message_spec.rb +297 -0
  223. data/spec/integration/api/v2010/account/new_key_spec.rb +45 -0
  224. data/spec/integration/api/v2010/account/new_signing_key_spec.rb +45 -0
  225. data/spec/integration/api/v2010/account/notification_spec.rb +172 -0
  226. data/spec/integration/api/v2010/account/outgoing_caller_id_spec.rb +193 -0
  227. data/spec/integration/api/v2010/account/queue/member_spec.rb +170 -0
  228. data/spec/integration/api/v2010/account/queue_spec.rb +242 -0
  229. data/spec/integration/api/v2010/account/recording/add_on_result/payload_spec.rb +175 -0
  230. data/spec/integration/api/v2010/account/recording/add_on_result_spec.rb +166 -0
  231. data/spec/integration/api/v2010/account/recording/transcription_spec.rb +174 -0
  232. data/spec/integration/api/v2010/account/recording_spec.rb +179 -0
  233. data/spec/integration/api/v2010/account/short_code_spec.rb +180 -0
  234. data/spec/integration/api/v2010/account/signing_key_spec.rb +178 -0
  235. data/spec/integration/api/v2010/account/sip/credential_list/credential_spec.rb +257 -0
  236. data/spec/integration/api/v2010/account/sip/credential_list_spec.rb +246 -0
  237. data/spec/integration/api/v2010/account/sip/domain/credential_list_mapping_spec.rb +210 -0
  238. data/spec/integration/api/v2010/account/sip/domain/ip_access_control_list_mapping_spec.rb +220 -0
  239. data/spec/integration/api/v2010/account/sip/domain_spec.rb +283 -0
  240. data/spec/integration/api/v2010/account/sip/ip_access_control_list/ip_address_spec.rb +261 -0
  241. data/spec/integration/api/v2010/account/sip/ip_access_control_list_spec.rb +256 -0
  242. data/spec/integration/api/v2010/account/sip_spec.rb +10 -0
  243. data/spec/integration/api/v2010/account/token_spec.rb +56 -0
  244. data/spec/integration/api/v2010/account/transcription_spec.rb +167 -0
  245. data/spec/integration/api/v2010/account/usage/record/all_time_spec.rb +111 -0
  246. data/spec/integration/api/v2010/account/usage/record/daily_spec.rb +111 -0
  247. data/spec/integration/api/v2010/account/usage/record/last_month_spec.rb +111 -0
  248. data/spec/integration/api/v2010/account/usage/record/monthly_spec.rb +111 -0
  249. data/spec/integration/api/v2010/account/usage/record/this_month_spec.rb +111 -0
  250. data/spec/integration/api/v2010/account/usage/record/today_spec.rb +111 -0
  251. data/spec/integration/api/v2010/account/usage/record/yearly_spec.rb +111 -0
  252. data/spec/integration/api/v2010/account/usage/record/yesterday_spec.rb +111 -0
  253. data/spec/integration/api/v2010/account/usage/record_spec.rb +108 -0
  254. data/spec/integration/api/v2010/account/usage/trigger_spec.rb +283 -0
  255. data/spec/integration/api/v2010/account/usage_spec.rb +10 -0
  256. data/spec/integration/api/v2010/account/validation_request_spec.rb +48 -0
  257. data/spec/integration/api/v2010/account_spec.rb +254 -0
  258. data/spec/integration/chat/v1/credential_spec.rb +223 -0
  259. data/spec/integration/chat/v1/service/channel/invite_spec.rb +210 -0
  260. data/spec/integration/chat/v1/service/channel/member_spec.rb +284 -0
  261. data/spec/integration/chat/v1/service/channel/message_spec.rb +294 -0
  262. data/spec/integration/chat/v1/service/channel_spec.rb +275 -0
  263. data/spec/integration/chat/v1/service/role_spec.rb +263 -0
  264. data/spec/integration/chat/v1/service/user/user_channel_spec.rb +92 -0
  265. data/spec/integration/chat/v1/service/user_spec.rb +266 -0
  266. data/spec/integration/chat/v1/service_spec.rb +299 -0
  267. data/spec/integration/chat/v2/credential_spec.rb +223 -0
  268. data/spec/integration/chat/v2/service/channel/invite_spec.rb +210 -0
  269. data/spec/integration/chat/v2/service/channel/member_spec.rb +284 -0
  270. data/spec/integration/chat/v2/service/channel/message_spec.rb +294 -0
  271. data/spec/integration/chat/v2/service/channel_spec.rb +275 -0
  272. data/spec/integration/chat/v2/service/role_spec.rb +263 -0
  273. data/spec/integration/chat/v2/service/user/user_channel_spec.rb +92 -0
  274. data/spec/integration/chat/v2/service/user_spec.rb +266 -0
  275. data/spec/integration/chat/v2/service_spec.rb +325 -0
  276. data/spec/integration/ip_messaging/v1/credential_spec.rb +223 -0
  277. data/spec/integration/ip_messaging/v1/service/channel/invite_spec.rb +210 -0
  278. data/spec/integration/ip_messaging/v1/service/channel/member_spec.rb +284 -0
  279. data/spec/integration/ip_messaging/v1/service/channel/message_spec.rb +294 -0
  280. data/spec/integration/ip_messaging/v1/service/channel_spec.rb +275 -0
  281. data/spec/integration/ip_messaging/v1/service/role_spec.rb +263 -0
  282. data/spec/integration/ip_messaging/v1/service/user/user_channel_spec.rb +92 -0
  283. data/spec/integration/ip_messaging/v1/service/user_spec.rb +266 -0
  284. data/spec/integration/ip_messaging/v1/service_spec.rb +299 -0
  285. data/spec/integration/ip_messaging/v2/credential_spec.rb +223 -0
  286. data/spec/integration/ip_messaging/v2/service/channel/invite_spec.rb +210 -0
  287. data/spec/integration/ip_messaging/v2/service/channel/member_spec.rb +284 -0
  288. data/spec/integration/ip_messaging/v2/service/channel/message_spec.rb +294 -0
  289. data/spec/integration/ip_messaging/v2/service/channel_spec.rb +275 -0
  290. data/spec/integration/ip_messaging/v2/service/role_spec.rb +263 -0
  291. data/spec/integration/ip_messaging/v2/service/user/user_channel_spec.rb +92 -0
  292. data/spec/integration/ip_messaging/v2/service/user_spec.rb +266 -0
  293. data/spec/integration/ip_messaging/v2/service_spec.rb +325 -0
  294. data/spec/integration/lookups/v1/phone_number_spec.rb +60 -0
  295. data/spec/integration/monitor/v1/alert_spec.rb +161 -0
  296. data/spec/integration/monitor/v1/event_spec.rb +148 -0
  297. data/spec/integration/pricing/v1/messaging/country_spec.rb +137 -0
  298. data/spec/integration/pricing/v1/messaging_spec.rb +10 -0
  299. data/spec/integration/pricing/v1/phone_number/country_spec.rb +128 -0
  300. data/spec/integration/pricing/v1/phone_number_spec.rb +10 -0
  301. data/spec/integration/pricing/v1/voice/country_spec.rb +266 -0
  302. data/spec/integration/pricing/v1/voice/number_spec.rb +54 -0
  303. data/spec/integration/pricing/v1/voice_spec.rb +10 -0
  304. data/spec/integration/taskrouter/v1/workspace/activity_spec.rb +236 -0
  305. data/spec/integration/taskrouter/v1/workspace/event_spec.rb +157 -0
  306. data/spec/integration/taskrouter/v1/workspace/task/reservation_spec.rb +192 -0
  307. data/spec/integration/taskrouter/v1/workspace/task_channel_spec.rb +127 -0
  308. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_statistics_spec.rb +106 -0
  309. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queues_statistics_spec.rb +144 -0
  310. data/spec/integration/taskrouter/v1/workspace/task_queue_spec.rb +292 -0
  311. data/spec/integration/taskrouter/v1/workspace/task_spec.rb +324 -0
  312. data/spec/integration/taskrouter/v1/workspace/worker/reservation_spec.rb +192 -0
  313. data/spec/integration/taskrouter/v1/workspace/worker/worker_channel_spec.rb +201 -0
  314. data/spec/integration/taskrouter/v1/workspace/worker/worker_statistics_spec.rb +107 -0
  315. data/spec/integration/taskrouter/v1/workspace/worker/workers_statistics_spec.rb +141 -0
  316. data/spec/integration/taskrouter/v1/workspace/worker_spec.rb +282 -0
  317. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_statistics_spec.rb +69 -0
  318. data/spec/integration/taskrouter/v1/workspace/workflow_spec.rb +265 -0
  319. data/spec/integration/taskrouter/v1/workspace/workspace_statistics_spec.rb +103 -0
  320. data/spec/integration/taskrouter/v1/workspace_spec.rb +287 -0
  321. data/spec/integration/trunking/v1/trunk/credential_list_spec.rb +192 -0
  322. data/spec/integration/trunking/v1/trunk/ip_access_control_list_spec.rb +192 -0
  323. data/spec/integration/trunking/v1/trunk/origination_url_spec.rb +250 -0
  324. data/spec/integration/trunking/v1/trunk/phone_number_spec.rb +267 -0
  325. data/spec/integration/trunking/v1/trunk_spec.rb +276 -0
  326. data/spec/integration/video/v1/recording_spec.rb +165 -0
  327. data/spec/integration/video/v1/room/recording_spec.rb +146 -0
  328. data/spec/integration/video/v1/room_spec.rb +237 -0
  329. data/spec/jwt/access_token_spec.rb +130 -0
  330. data/spec/jwt/client_capability_spec.rb +104 -0
  331. data/spec/jwt/task_router_spec.rb +172 -0
  332. data/spec/rack/twilio_webhook_authentication_spec.rb +106 -0
  333. data/spec/security/request_validator_spec.rb +113 -0
  334. data/spec/spec_helper.rb +29 -3
  335. data/spec/support/fakeweb.rb +2 -0
  336. data/spec/twilio_spec.rb +15 -0
  337. data/spec/twiml/messaging_response_spec.rb +90 -0
  338. data/spec/twiml/voice_response_spec.rb +474 -0
  339. data/spec/util/configuration_spec.rb +15 -0
  340. data/spec/util/url_encode_spec.rb +2 -2
  341. data/twilio-ruby.gemspec +32 -26
  342. metadata +502 -152
  343. data/CHANGES +0 -47
  344. data/docs/Makefile +0 -130
  345. data/docs/_themes/LICENSE +0 -45
  346. data/docs/_themes/README.rst +0 -25
  347. data/docs/_themes/flask_theme_support.py +0 -86
  348. data/docs/_themes/kr/layout.html +0 -32
  349. data/docs/_themes/kr/relations.html +0 -19
  350. data/docs/_themes/kr/static/flasky.css_t +0 -469
  351. data/docs/_themes/kr/static/small_flask.css +0 -70
  352. data/docs/_themes/kr/theme.conf +0 -7
  353. data/docs/_themes/kr_small/layout.html +0 -22
  354. data/docs/_themes/kr_small/static/flasky.css_t +0 -287
  355. data/docs/_themes/kr_small/theme.conf +0 -10
  356. data/docs/changelog.rst +0 -1
  357. data/docs/conf.py +0 -266
  358. data/docs/faq.rst +0 -42
  359. data/docs/getting-started.rst +0 -91
  360. data/docs/index.rst +0 -109
  361. data/docs/make.bat +0 -170
  362. data/docs/src/pip-delete-this-directory.txt +0 -5
  363. data/docs/usage/accounts.rst +0 -89
  364. data/docs/usage/applications.rst +0 -108
  365. data/docs/usage/basics.rst +0 -102
  366. data/docs/usage/caller-ids.rst +0 -45
  367. data/docs/usage/conferences.rst +0 -108
  368. data/docs/usage/errors.rst +0 -29
  369. data/docs/usage/messages.rst +0 -109
  370. data/docs/usage/notifications.rst +0 -70
  371. data/docs/usage/phone-calls.rst +0 -166
  372. data/docs/usage/phone-numbers.rst +0 -174
  373. data/docs/usage/queues.rst +0 -112
  374. data/docs/usage/recordings.rst +0 -96
  375. data/docs/usage/sip.rst +0 -103
  376. data/docs/usage/token-generation.rst +0 -81
  377. data/docs/usage/transcriptions.rst +0 -31
  378. data/docs/usage/twiml.rst +0 -69
  379. data/docs/usage/validation.rst +0 -71
  380. data/lib/twilio-ruby/rest/applications.rb +0 -6
  381. data/lib/twilio-ruby/rest/authorized_connect_apps.rb +0 -6
  382. data/lib/twilio-ruby/rest/available_phone_numbers/country.rb +0 -10
  383. data/lib/twilio-ruby/rest/available_phone_numbers/local.rb +0 -11
  384. data/lib/twilio-ruby/rest/available_phone_numbers/mobile.rb +0 -11
  385. data/lib/twilio-ruby/rest/available_phone_numbers/toll_free.rb +0 -11
  386. data/lib/twilio-ruby/rest/available_phone_numbers.rb +0 -13
  387. data/lib/twilio-ruby/rest/calls.rb +0 -28
  388. data/lib/twilio-ruby/rest/conferences/participants.rb +0 -23
  389. data/lib/twilio-ruby/rest/conferences.rb +0 -12
  390. data/lib/twilio-ruby/rest/connect_apps.rb +0 -6
  391. data/lib/twilio-ruby/rest/errors.rb +0 -14
  392. data/lib/twilio-ruby/rest/incoming_phone_numbers/local.rb +0 -13
  393. data/lib/twilio-ruby/rest/incoming_phone_numbers/mobile.rb +0 -13
  394. data/lib/twilio-ruby/rest/incoming_phone_numbers/toll_free.rb +0 -13
  395. data/lib/twilio-ruby/rest/incoming_phone_numbers.rb +0 -17
  396. data/lib/twilio-ruby/rest/instance_resource.rb +0 -101
  397. data/lib/twilio-ruby/rest/list_resource.rb +0 -110
  398. data/lib/twilio-ruby/rest/media.rb +0 -14
  399. data/lib/twilio-ruby/rest/messages.rb +0 -17
  400. data/lib/twilio-ruby/rest/notifications.rb +0 -6
  401. data/lib/twilio-ruby/rest/outgoing_caller_ids.rb +0 -25
  402. data/lib/twilio-ruby/rest/queues/members.rb +0 -29
  403. data/lib/twilio-ruby/rest/queues.rb +0 -12
  404. data/lib/twilio-ruby/rest/recordings.rb +0 -35
  405. data/lib/twilio-ruby/rest/sandbox.rb +0 -5
  406. data/lib/twilio-ruby/rest/sip/credential_lists/credentials.rb +0 -6
  407. data/lib/twilio-ruby/rest/sip/credential_lists.rb +0 -11
  408. data/lib/twilio-ruby/rest/sip/domains/credential_list_mappings.rb +0 -6
  409. data/lib/twilio-ruby/rest/sip/domains/ip_access_control_list_mappings.rb +0 -6
  410. data/lib/twilio-ruby/rest/sip/domains.rb +0 -12
  411. data/lib/twilio-ruby/rest/sip/ip_access_control_lists/ip_addresses.rb +0 -6
  412. data/lib/twilio-ruby/rest/sip/ip_access_control_lists.rb +0 -11
  413. data/lib/twilio-ruby/rest/sip.rb +0 -12
  414. data/lib/twilio-ruby/rest/sms/messages.rb +0 -15
  415. data/lib/twilio-ruby/rest/sms/short_codes.rb +0 -8
  416. data/lib/twilio-ruby/rest/sms.rb +0 -11
  417. data/lib/twilio-ruby/rest/transcriptions.rb +0 -6
  418. data/lib/twilio-ruby/rest/usage/records.rb +0 -21
  419. data/lib/twilio-ruby/rest/usage/triggers.rb +0 -12
  420. data/lib/twilio-ruby/rest/usage.rb +0 -10
  421. data/lib/twilio-ruby/rest/utils.rb +0 -25
  422. data/lib/twilio-ruby/twiml/response.rb +0 -15
  423. data/lib/twilio-ruby/util/capability.rb +0 -61
  424. data/lib/twilio-ruby/util/request_validator.rb +0 -22
  425. data/spec/rest/account_spec.rb +0 -58
  426. data/spec/rest/call_spec.rb +0 -18
  427. data/spec/rest/client_spec.rb +0 -100
  428. data/spec/rest/conference_spec.rb +0 -9
  429. data/spec/rest/instance_resource_spec.rb +0 -15
  430. data/spec/rest/message_spec.rb +0 -12
  431. data/spec/rest/numbers_spec.rb +0 -46
  432. data/spec/rest/queue_spec.rb +0 -9
  433. data/spec/rest/recording_spec.rb +0 -9
  434. data/spec/util/capability_spec.rb +0 -137
  435. data/spec/util/request_validator_spec.rb +0 -65
@@ -1,112 +0,0 @@
1
- .. module:: twilio.rest.resources
2
-
3
- ==============================
4
- Queues and Members
5
- ==============================
6
-
7
- For more information, see the
8
- `Queue REST Resource <http://www.twilio.com/docs/api/rest/queue>`_
9
- and `Member REST Resource <http://www.twilio.com/docs/api/rest/member>`_
10
- documentation.
11
-
12
-
13
- Listing Queues
14
- -----------------------
15
-
16
- .. code-block:: ruby
17
-
18
- require 'twilio-ruby'
19
-
20
- # To find these visit https://www.twilio.com/user/account
21
- account_sid = "ACXXXXXXXXXXXXXXXXX"
22
- auth_token = "YYYYYYYYYYYYYYYYYY"
23
-
24
- @client = Twilio::REST::Client.new account_sid, auth_token
25
- @queues = @client.account.queues.list()
26
-
27
- @queues.each do |queue|
28
- puts queue.sid
29
- end
30
-
31
-
32
- Listing Queue Members
33
- ----------------------
34
-
35
- Each :class:`Queue` has a :attr:`members` instance which
36
- represents all current calls in the queue.
37
-
38
- .. code-block:: ruby
39
-
40
- require 'twilio-ruby'
41
-
42
- # To find these visit https://www.twilio.com/user/account
43
- account_sid = "ACXXXXXXXXXXXXXXXXX"
44
- auth_token = "YYYYYYYYYYYYYYYYYY"
45
-
46
- @client = Twilio::REST::Client.new account_sid, auth_token
47
- @queue = @client.account.queues.get("QU123")
48
-
49
- @queue.members.list().each do |member|
50
- print member.call_sid
51
- end
52
-
53
-
54
- Getting a specific Queue Member
55
- -------------------------------
56
-
57
- To retrieve information about a specific member in the queue, each
58
- :class:`Members` has a :attr:`get` method. :attr:`get` accepts one
59
- argument. The argument can either be a `call_sid` thats in the queue,
60
- in which case :attr:`get` will return a :class:`Member` instance
61
- representing that call, or the argument can be 'Front', in which case
62
- :attr:`Get` will return a :class:`Member` instance representing the
63
- first call in the queue.
64
-
65
- .. code-block:: ruby
66
-
67
- require 'twilio-ruby'
68
-
69
- # To find these visit https://www.twilio.com/user/account
70
- account_sid = "ACXXXXXXXXXXXXXXXXX"
71
- auth_token = "YYYYYYYYYYYYYYYYYY"
72
-
73
- @client = Twilio::REST::Client.new account_sid, auth_token
74
-
75
- queue_sid = "QUAAAAAAAAAAAAA"
76
- call_sid = "CAXXXXXXXXXXXXXX"
77
-
78
- @members = @client.account.queues.get(queue_sid).members
79
-
80
- # Get the first call in the queue
81
- puts members.front.date_enqueued
82
-
83
- # Get the call with the given call sid in the queue
84
- puts members.get(call_sid).current_position
85
-
86
-
87
- Dequeueing Queue Members
88
- ------------------------
89
-
90
- To dequeue a specific member from the queue, each
91
- :class:`Members` has a :attr:`dequeue` method. :attr:`dequeue` accepts an
92
- argument and two optional keyword arguments. The first argument is the
93
- url of the twiml document to be executed when the member is
94
- dequeued. The other two are :attr:`call_sid` and :attr:`method`, their
95
- default values are 'Front' and 'GET'
96
-
97
- .. code-block:: ruby
98
-
99
- require 'twilio-ruby'
100
-
101
- # To find these visit https://www.twilio.com/user/account
102
- account_sid = "ACXXXXXXXXXXXXXXXXX"
103
- auth_token = "YYYYYYYYYYYYYYYYYY"
104
-
105
- @client = Twilio::REST::Client.new account_sid, auth_token
106
-
107
- queue_sid = "QUAAAAAAAAAAAAA"
108
-
109
- @members = @client.account.queues.get(queue_sid).members
110
-
111
- # Dequeue the first call in the queue
112
- puts @members.dequeue('http://www.twilio.com/welcome/call')
@@ -1,96 +0,0 @@
1
- .. module:: twilio.rest.resources
2
-
3
- ================
4
- Recordings
5
- ================
6
-
7
- For more information, see the
8
- `Recordings REST Resource <http://www.twilio.com/docs/api/rest/recording>`_
9
- documentation.
10
-
11
-
12
- Audio Formats
13
- -----------------
14
-
15
- Each :class:`Recording` has a few special methods. To get the url
16
- for the wav format of this recording, use :meth:`Recording.wav`. For the
17
- mp3 format, use :meth:`Recording.mp3`. To make requests for either of
18
- these formats use the same method with a '!' appended. These methods
19
- both take a block to be executed as soon as the response returns.
20
-
21
-
22
- Listing Your Recordings
23
- ----------------------------
24
-
25
- The following code will print out the :attr:`duration`
26
- for each :class:`Recording`.
27
-
28
- .. code-block:: ruby
29
-
30
- require 'twilio-ruby'
31
-
32
- # To find these visit https://www.twilio.com/user/account
33
- account_sid = "ACXXXXXXXXXXXXXXXXX"
34
- auth_token = "YYYYYYYYYYYYYYYYYY"
35
-
36
- @client = Twilio::REST::Client.new account_sid, auth_token
37
-
38
- @client.account.recordings.list().each do |recording|
39
- puts recording.duration
40
-
41
- You can filter recordings by CallSid by passing the Sid as :attr:`call`.
42
- Filter recordings using :attr:`before` and :attr:`after` dates.
43
-
44
- The following will only show recordings made before January 1, 2011.
45
-
46
- .. code-block:: ruby
47
-
48
- require 'twilio-ruby'
49
-
50
- # To find these visit https://www.twilio.com/user/account
51
- account_sid = "ACXXXXXXXXXXXXXXXXX"
52
- auth_token = "YYYYYYYYYYYYYYYYYY"
53
-
54
- @client = Twilio::REST::Client.new account_sid, auth_token
55
- @client.account.recordings.list(before=date(2011,1,1)).each do |recording|:
56
- puts recording.duration
57
-
58
-
59
- Deleting Recordings
60
- ---------------------
61
-
62
- The :class:`Recordings` resource allows you to delete unnecessary recordings.
63
-
64
- .. code-block:: ruby
65
-
66
- require 'twilio-ruby'
67
-
68
- # To find these visit https://www.twilio.com/user/account
69
- account_sid = "ACXXXXXXXXXXXXXXXXX"
70
- auth_token = "YYYYYYYYYYYYYYYYYY"
71
-
72
- @client = Twilio::REST::Client.new account_sid, auth_token
73
- @client.account.recordings.get("RC123").delete()
74
-
75
-
76
- Accessing Related Transcptions
77
- -------------------------------
78
-
79
- The :class:`Recordings` allows you to retrieve associated transcriptions.
80
- The following prints out the text for each of the transcriptions associated
81
- with this recording.
82
-
83
- .. code-block:: ruby
84
-
85
- require 'twilio-ruby'
86
-
87
- # To find these visit https://www.twilio.com/user/account
88
- account_sid = "ACXXXXXXXXXXXXXXXXX"
89
- auth_token = "YYYYYYYYYYYYYYYYYY"
90
-
91
- @client = Twilio::REST::Client.new account_sid, auth_token
92
- @recording = @client.account.recordings.get("RC123")
93
-
94
- @recording.transcriptions.list().each do |transcription|
95
- puts transcription.transcription_text
96
-
data/docs/usage/sip.rst DELETED
@@ -1,103 +0,0 @@
1
- =============
2
- Sip In
3
- =============
4
-
5
- Getting started with Sip In
6
- ===========================
7
-
8
- If you're unfamiliar with SIP, please see the `SIP API Documentation
9
- <https://www.twilio.com/docs/api/rest/sip>`_ on our website. If you want
10
- to make a regular phone call, take a look at :doc:`phone-calls`.
11
-
12
- Creating a Sip Domain
13
- =====================
14
-
15
- The :class:`Domains` resource allows you to create a new domain. To
16
- create a new domain, you'll need to choose a unique domain that lives
17
- under sip.twilio.com.
18
-
19
- .. code-block:: ruby
20
-
21
- require 'twilio-ruby'
22
-
23
- # To find these visit https://www.twilio.com/user/account
24
- account_sid = "ACXXXXXXXXXXXXXXXXX"
25
- auth_token = "YYYYYYYYYYYYYYYYYY"
26
-
27
- @client = Twilio::REST::Client.new account_sid, auth_token
28
-
29
- @domain = @client.account.sip.domains.create(
30
- {:friendly_name => "The Office Domain",
31
- :voice_url => "http://example.com/voice",
32
- :domain_name => "dunder-mifflin-scranton.sip.twilio.com",}
33
- )
34
- puts @domain.sid
35
-
36
- Creating a new IpAccessControlList
37
- ==================================
38
-
39
- To control access to your new domain, you'll need to explicitly grant access
40
- to individual ip addresses. To do this, you'll first need to create an
41
- :class:`IpAccessControlList` to hold the ip addresses you wish to allow.
42
-
43
- .. code-block:: ruby
44
-
45
- require 'twilio-ruby'
46
-
47
- # To find these visit https://www.twilio.com/user/account
48
- account_sid = "ACXXXXXXXXXXXXXXXXX"
49
- auth_token = "YYYYYYYYYYYYYYYYYY"
50
-
51
- @client = Twilio::REST::Client.new account_sid, auth_token
52
-
53
- @ip_acl = @client.account.sip.ip_access_control_lists.create(
54
- {:friendly_name => "The Office IpAccessControlList",}
55
- )
56
- puts @ip_acl.sid
57
-
58
- Adding a new IpAddress
59
- =========================
60
-
61
- Now it's time to add an :class:`IpAddress` to your new :class:`IpAccessControlList`.
62
-
63
- .. code-block:: ruby
64
-
65
- require 'twilio-ruby'
66
-
67
- # To find these visit https://www.twilio.com/user/account
68
- account_sid = "ACXXXXXXXXXXXXXXXXX"
69
- auth_token = "YYYYYYYYYYYYYYYYYY"
70
-
71
- @client = Twilio::REST::Client.new account_sid, auth_token
72
-
73
- @ip_address = @client.account.sip.ip_access_control_lists.get(
74
- "AL456", # IpAccessControlList sid
75
- ).ip_addresses.create(
76
- {:friendly_name => "Dwights's Computer",
77
- :ip_address => "192.168.1.42",}
78
- )
79
- puts @ip_address.sid
80
-
81
- Adding an IpAccessControlList to a Domain
82
- ===========================================
83
-
84
- Once you've created a :class:`Domain` and an :class:`IpAccessControlList` you need to
85
- associate them. To do this, create an :class:`IpAccessControlListMapping`.
86
-
87
- .. code-block:: ruby
88
-
89
- require 'twilio-ruby'
90
-
91
- # To find these visit https://www.twilio.com/user/account
92
- account_sid = "ACXXXXXXXXXXXXXXXXX"
93
- auth_token = "YYYYYYYYYYYYYYYYYY"
94
-
95
- @client = Twilio::REST::Client.new account_sid, auth_token
96
-
97
- @ip_acl_mapping = @client.account.sip.domains.get(
98
- "SD456", # SIP Domain sid
99
- ).ip_access_control_list_mappings.create(
100
- {:ip_access_control_list_sid => "AL789"})
101
-
102
- puts @ip_acl_mapping.sid
103
-
@@ -1,81 +0,0 @@
1
- .. module:: twilio.util
2
-
3
- ===========================
4
- Generate Capability Tokens
5
- ===========================
6
-
7
- `Twilio Client <http://www.twilio.com/api/client>`_ allows you to make and
8
- receive connections in the browser.
9
- You can place a call to a phone on the PSTN network,
10
- all without leaving your browser. See the `Twilio Client Quickstart
11
- <http:/www.twilio.com/docs/quickstart/client>`_ to get up and running with
12
- Twilio Client.
13
-
14
- Capability tokens are used by `Twilio Client
15
- <http://www.twilio.com/api/client>`_ to provide connection
16
- security and authorization. The `Capability Token documentation
17
- <http://www.twilio.com/docs/tokens>`_ explains in depth the purpose and
18
- features of these tokens.
19
-
20
- :class:`TwilioCapability` is responsible for the creation of these capability
21
- tokens. You'll need your Twilio AccountSid and AuthToken.
22
-
23
- .. code-block:: ruby
24
-
25
- require 'twilio-ruby'
26
-
27
- # Find these values at twilio.com/user/account
28
- account_sid = "AC123123"
29
- auth_token = "secret"
30
-
31
- @capability = Twilio::Util::Capability.new account_sid, auth_token
32
-
33
-
34
- Allow Incoming Connections
35
- ==============================
36
-
37
- Before a device running `Twilio Client <http://www.twilio.com/api/client>`_
38
- can recieve incoming connections, the instance must first register a name
39
- (such as "Alice" or "Bob").
40
- The :meth:`allow_client_incoming` method adds the client name to the
41
- capability token.
42
-
43
- .. code-block:: ruby
44
-
45
- @capability.allow_client_incoming("Alice")
46
-
47
-
48
- Allow Outgoing Connections
49
- ==============================
50
-
51
- To make an outgoing connection from a
52
- `Twilio Client <http://www.twilio.com/api/client>`_ device,
53
- you'll need to choose a
54
- `Twilio Application <http://www.twilio.com/docs/api/rest/applications>`_
55
- to handle TwiML URLs. A Twilio Application is a collection of URLs responsible
56
- for outputting valid TwiML to control phone calls and messages.
57
-
58
- .. code-block:: ruby
59
-
60
- # Twilio Application Sid
61
- application_sid = "APabe7650f654fc34655fc81ae71caa3ff"
62
- @capability.allow_client_outgoing(application_sid)
63
-
64
-
65
- Generate a Token
66
- ==================
67
-
68
- .. code-block:: ruby
69
-
70
- @token = @capability.generate()
71
-
72
- By default, this token will expire in one hour. If you'd like to change the
73
- token expiration, :meth:`generate` takes an optional :attr:`ttl` argument.
74
-
75
- .. code-block:: ruby
76
-
77
- @token = @capability.generate(ttl=600)
78
-
79
- This token will now expire in 10 minutes. If you haven't guessed already,
80
- :attr:`ttl` is expressed in seconds.
81
-
@@ -1,31 +0,0 @@
1
- .. module:: twilio.rest.resources
2
-
3
- ================
4
- Transcriptions
5
- ================
6
-
7
- Transcriptions are generated from recordings via the
8
- `TwiML <Record> verb <http://www.twilio.com/docs/api/twiml/record>`_.
9
- Using the API, you can only read your transcription records.
10
-
11
- For more information, see the `Transcriptions REST Resource
12
- <http://www.twilio.com/docs/api/rest/transcription>`_ documentation.
13
-
14
-
15
- Listing Your Transcriptions
16
- ----------------------------
17
-
18
- The following code will print out the length of each :class:`Transcription`.
19
-
20
- .. code-block:: ruby
21
-
22
- require 'twilio-ruby'
23
-
24
- # To find these visit https://www.twilio.com/user/account
25
- account_sid = "ACXXXXXXXXXXXXXXXXX"
26
- auth_token = "YYYYYYYYYYYYYYYYYY"
27
-
28
- @client = Twilio::REST::Client.new account_sid, auth_token
29
- @client.account.transcriptions.list().each do |transcription|
30
- puts transcription.duration
31
-
data/docs/usage/twiml.rst DELETED
@@ -1,69 +0,0 @@
1
- .. _usage-twiml:
2
-
3
- .. module:: twilio.twiml
4
-
5
- ==============
6
- TwiML Creation
7
- ==============
8
-
9
- TwiML creation begins with the :class:`Response` verb.
10
- Each successive verb is created by calling various methods on the response,
11
- such as :meth:`say` or :meth:`play`.
12
- These methods return the verbs they create to ease creation of nested TwiML.
13
- To finish, call the :meth:`toxml` method on the :class:`Response`,
14
- which returns raw TwiML.
15
-
16
- .. code-block:: ruby
17
-
18
- require 'twilio-ruby'
19
-
20
- Twilio::TwiML::Response.new do |r|
21
- r.Say "Hello"
22
- end.text
23
-
24
- .. code-block:: xml
25
-
26
- <?xml version="1.0" encoding="utf-8"?>
27
- <Response><Say>Hello</Say><Response>
28
-
29
- The verb methods (outlined in the :doc:`complete reference </api/twiml>`)
30
- take the body (only text) of the verb as the first argument.
31
- All attributes are keyword arguments.
32
-
33
- .. code-block:: ruby
34
-
35
- require 'twilio-ruby'
36
-
37
- Twilio::TwiML::Response.new do |r|
38
- r.Play "https://api.twilio.com/cowbell.mp3", :loop => 5
39
- end.text
40
-
41
- .. code-block:: xml
42
-
43
- <?xml version="1.0" encoding="utf-8"?>
44
- <Response>
45
- <Play loop="3">https://api.twilio.com/cowbell.mp3</Play>
46
- <Response>
47
-
48
- Any example of nesting nouns in verbs
49
-
50
- .. code-block:: ruby
51
-
52
- require 'twilio-ruby'
53
-
54
- Twilio::TwiML::Response.new do |r|
55
- r.Say "hello"
56
- r.Gather :finish_on_key => 4 do |g|
57
- g.Say "world"
58
- end
59
- end.text
60
-
61
- which returns the following
62
-
63
- .. code-block:: xml
64
-
65
- <?xml version="1.0" encoding="utf-8"?>
66
- <Response>
67
- <Say>Hello</Say>
68
- <Gather finishOnKey="4"><Say>World</Say></Gather>
69
- </Response>
@@ -1,71 +0,0 @@
1
- .. module:: twilio.util
2
-
3
- ===========================
4
- Validate Incoming Requests
5
- ===========================
6
-
7
- Twilio requires that your TwiML-serving web server be open to the public. This
8
- is necessary so that Twilio can retrieve TwiML from urls and POST data back to
9
- your server.
10
-
11
- However, there may be people out there trying to spoof the Twilio service.
12
- Luckily, there's an easy way to validate that incoming requests are from Twilio
13
- and Twilio alone.
14
-
15
- An in-depth guide to our security features can be `found in our online
16
- documentation <http://www.twilio.com/docs/security>`_.
17
-
18
- Before you can validate requests, you'll need four pieces of information:
19
-
20
- * your Twilio Auth Token (found in your `Dashboard
21
- <https://www.twilio.com/user/account>`_)
22
- * the POST data for the request
23
- * the requested URL
24
- * the X-Twilio-Signature header value
25
-
26
- Obtaining the last three pieces of information depends on the framework you are
27
- using to process requests. The below example assumes that you have the POST
28
- data as a dictionary and the url and X-Twilio-Signature as strings.
29
-
30
- The below example will print out a confirmation message if the request is
31
- actually from Twilio.
32
-
33
- .. code-block:: ruby
34
-
35
- require 'twilio-ruby'
36
-
37
- auth_token = 'YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY'
38
-
39
- @validator = Twilio::Util::RequestValidator.new auth_token
40
-
41
- # the callback URL you provided to Twilio
42
- url = "http://www.example.com/my/callback/url.xml"
43
-
44
- # the POST variables attached to the request (eg "From", "To")
45
- post_vars = {}
46
-
47
- # X-Twilio-Signature header value
48
- signature = "HpS7PBa1Agvt4OtO+wZp75IuQa0=" # will look something like that
49
-
50
- if @validator.validate(url, post_vars, signature)
51
- puts "Confirmed to have come from Twilio."
52
- else
53
- puts "NOT VALID. It might have been spoofed!"
54
- end
55
-
56
-
57
- Trailing Slashes
58
- ==================
59
-
60
- If your URL uses an "index" page, such as index.php or index.html to handle
61
- the request, such as: https://mycompany.com/twilio where the real page
62
- is served from https://mycompany.com/twilio/index.php, then Apache or
63
- PHP may rewrite that URL a little bit so it's got a trailing slash, such as
64
- https://mycompany.com/twilio/ for example.
65
-
66
- Using the code above, or similar code in another language, you could
67
- end up with an incorrect hash because Twilio built the hash using
68
- https://mycompany.com/twilio and you may have built the hash using
69
- https://mycompany.com/twilio/. More information can be found in our
70
- documentation on validating requests.
71
-
@@ -1,6 +0,0 @@
1
- module Twilio
2
- module REST
3
- class Applications < ListResource; end
4
- class Application < InstanceResource; end
5
- end
6
- end
@@ -1,6 +0,0 @@
1
- module Twilio
2
- module REST
3
- class AuthorizedConnectApps < ListResource; end
4
- class AuthorizedConnectApp < InstanceResource; end
5
- end
6
- end
@@ -1,10 +0,0 @@
1
- module Twilio
2
- module REST
3
- class Country < InstanceResource
4
- def initialize(path, client, params={})
5
- super path, client, params
6
- resource :local, :toll_free, :mobile
7
- end
8
- end
9
- end
10
- end
@@ -1,11 +0,0 @@
1
- module Twilio
2
- module REST
3
- class Local < ListResource
4
- def initialize(path, client)
5
- @path, @client = path, client
6
- @instance_class = Twilio::REST::AvailablePhoneNumber
7
- @list_key, @instance_id_key = 'available_phone_numbers', 'sid'
8
- end
9
- end
10
- end
11
- end
@@ -1,11 +0,0 @@
1
- module Twilio
2
- module REST
3
- class Mobile < ListResource
4
- def initialize(path, client)
5
- @path, @client = path, client
6
- @instance_class = Twilio::REST::AvailablePhoneNumber
7
- @list_key, @instance_id_key = 'available_phone_numbers', 'sid'
8
- end
9
- end
10
- end
11
- end
@@ -1,11 +0,0 @@
1
- module Twilio
2
- module REST
3
- class TollFree < ListResource
4
- def initialize(path, client)
5
- @path, @client = path, client
6
- @instance_class = Twilio::REST::AvailablePhoneNumber
7
- @list_key, @instance_id_key = 'available_phone_numbers', 'sid'
8
- end
9
- end
10
- end
11
- end
@@ -1,13 +0,0 @@
1
- module Twilio
2
- module REST
3
- class AvailablePhoneNumbers < ListResource
4
- def initialize(path, client)
5
- @path, @client = path, client
6
- @instance_class = Twilio::REST::Country
7
- @list_key, @instance_id_key = 'countries', 'country_code'
8
- end
9
- end
10
-
11
- class AvailablePhoneNumber < InstanceResource; end
12
- end
13
- end
@@ -1,28 +0,0 @@
1
- module Twilio
2
- module REST
3
- class Calls < ListResource
4
- def make(from, to, url)
5
- create :from => from, :to => to, :url => url
6
- end
7
- end
8
-
9
- class Call < InstanceResource
10
- def initialize(path, client, params={})
11
- super path, client, params
12
- resource :recordings, :notifications
13
- end
14
-
15
- def redirect_to(url)
16
- update :url => url
17
- end
18
-
19
- def cancel
20
- update :status => 'canceled'
21
- end
22
-
23
- def hangup
24
- update :status => 'completed'
25
- end
26
- end
27
- end
28
- end