33namespace Aloha \Twilio ;
44
55use Twilio \Rest \Client ;
6- use Twilio \Twiml ;
6+ use Twilio \TwiML \TwiML ;
7+ use Twilio \TwiML \VoiceResponse ;
78
89class Twilio implements TwilioInterface
910{
@@ -73,7 +74,7 @@ public function message($to, $message, $mediaUrls = null, array $params = [])
7374
7475 /**
7576 * @param string $to
76- * @param callable|string $message
77+ * @param callable|string|TwiML $message
7778 * @param array $params
7879 *
7980 * @see https://www.twilio.com/docs/api/voice/making-calls Documentation
@@ -82,16 +83,14 @@ public function message($to, $message, $mediaUrls = null, array $params = [])
8283 */
8384 public function call ($ to , $ message , array $ params = [])
8485 {
85- if (is_callable ( $ message) ) {
86- $ query = http_build_query ([
87- ' Twiml ' => $ this -> twiml ( $ message ),
88- ] );
89-
90- $ message = ' https://twimlets.com/echo? ' . $ query ;
86+ if ($ message instanceof TwiML ) {
87+ $ params [ ' twiml ' ] = $ message -> __toString ();
88+ } elseif ( is_callable ( $ message )) {
89+ $ params [ ' twiml ' ] = $ this -> twiml ( $ message );
90+ } else {
91+ $ params [ ' url ' ] = $ message ;
9192 }
9293
93- $ params ['url ' ] = $ message ;
94-
9594 return $ this ->getTwilio ()->calls ->create (
9695 $ to ,
9796 $ this ->from ,
@@ -118,7 +117,7 @@ public function getTwilio()
118117 */
119118 private function twiml (callable $ callback )
120119 {
121- $ message = new Twiml ();
120+ $ message = new VoiceResponse ();
122121
123122 call_user_func ($ callback , $ message );
124123
0 commit comments