17
17
18
18
require ('../phone-numbers-config.php ' );
19
19
20
- function dial_attempt ($ phone_number ) {
20
+ function dial_attempt ($ incoming_sid , $ phone_number ) {
21
21
$ ch = curl_init ();
22
22
23
23
$ post = array (
@@ -40,14 +40,14 @@ function dial_attempt($phone_number) {
40
40
41
41
$ data = json_decode ($ result );
42
42
43
- error_log ("DIAL ATTEMPT: " . var_export ( $ result , true ) );
43
+ error_log ("[ $ incoming_sid ] DIAL ATTEMPT. TO: " . $ data -> to );
44
44
45
45
return $ data ->sid ;
46
46
}
47
47
48
48
function call_completed ($ sid ) {
49
49
50
- $ status = call_status ($ sid );
50
+ $ status = call_info ($ sid )-> status ;
51
51
52
52
$ final_status = array ('busy ' , 'no-answer ' , 'canceled ' , 'failed ' , 'completed ' );
53
53
@@ -58,27 +58,27 @@ function call_completed($sid) {
58
58
return false ;
59
59
}
60
60
61
- function call_status ($ sid ) {
61
+ function call_info ($ sid ) {
62
62
63
- $ ch = curl_init ();
63
+ $ ch = curl_init ();
64
64
65
- curl_setopt ($ ch , CURLOPT_URL , 'https://api.twilio.com/2010-04-01/Accounts/ ' . TWILIO_ACCOUNT_SID . '/Calls/ ' . $ sid . '.json ' );
66
- curl_setopt ($ ch , CURLOPT_RETURNTRANSFER , 1 );
67
- curl_setopt ($ ch , CURLOPT_CUSTOMREQUEST , 'GET ' );
65
+ curl_setopt ($ ch , CURLOPT_URL , 'https://api.twilio.com/2010-04-01/Accounts/ ' . TWILIO_ACCOUNT_SID . '/Calls/ ' . $ sid . '.json ' );
66
+ curl_setopt ($ ch , CURLOPT_RETURNTRANSFER , 1 );
67
+ curl_setopt ($ ch , CURLOPT_CUSTOMREQUEST , 'GET ' );
68
68
69
- curl_setopt ($ ch , CURLOPT_USERPWD , TWILIO_ACCOUNT_SID . ': ' . TWILIO_AUTH_TOKEN );
69
+ curl_setopt ($ ch , CURLOPT_USERPWD , TWILIO_ACCOUNT_SID . ': ' . TWILIO_AUTH_TOKEN );
70
70
71
- $ result = curl_exec ($ ch );
72
- if (curl_errno ($ ch )) {
73
- error_log ('ERROR (curl) when getting message SID info: ' . curl_error ($ ch ));
74
- }
75
- curl_close ($ ch );
71
+ $ result = curl_exec ($ ch );
72
+ if (curl_errno ($ ch )) {
73
+ error_log ('ERROR (curl) when getting message SID info: ' . curl_error ($ ch ));
74
+ }
75
+ curl_close ($ ch );
76
76
77
- $ data = json_decode ($ result );
78
-
79
- error_log ("OUTGOING CALL STATUS: " . $ data );
80
-
81
- return $ data-> status ;
77
+ $ data = json_decode ($ result );
78
+
79
+ // error_log("OUTGOING CALL STATUS: " . var_export( $data, true) );
80
+
81
+ return $ data ;
82
82
}
83
83
84
84
function queue_size ($ queue_sid = TWILIO_FIND_FIRST_QUEUE_SID ) {
@@ -114,13 +114,15 @@ function queue_size($queue_sid = TWILIO_FIND_FIRST_QUEUE_SID) {
114
114
$ max_attempts = 5 ;
115
115
$ i = 1 ;
116
116
117
+ error_log ("[ $ incoming_sid] INCOMING CALL. FROM: " . call_info ($ incoming_sid )->from );
118
+
117
119
while ($ i <= $ max_attempts ) {
118
120
foreach (constant ('PHONE_NUMBERS ' ) as $ phone_number ) {
119
121
if (queue_size () > 0 ) {
120
- $ outgoing_sid = dial_attempt ($ phone_number );
122
+ $ outgoing_sid = dial_attempt ($ incoming_sid , $ phone_number );
121
123
do {
122
- error_log ("INCOMING CALL STATUS: " . call_status ($ incoming_sid ));
123
- sleep (1 );
124
+ // error_log("INCOMING CALL STATUS: " . call_status($incoming_sid));
125
+ sleep (2 );
124
126
} while (!call_completed ($ outgoing_sid ) && queue_size () > 0 );
125
127
} else {
126
128
break 2 ;
@@ -129,4 +131,4 @@ function queue_size($queue_sid = TWILIO_FIND_FIRST_QUEUE_SID) {
129
131
$ i ++;
130
132
}
131
133
132
- error_log ("INCOMING CALL STATUS LAST: " . call_status ($ incoming_sid ));
134
+ error_log ("[ $ incoming_sid ] INCOMING CALL STATUS LAST: " . call_info ($ incoming_sid )-> status );
0 commit comments