Avatar of tjyoung
tjyoung
 asked on

Problem with Twilio StatusCallback. Logs show a POST but something is amiss

Hi
I've been trying to see what is wrong for literally hours and still can't figure out why its not working.
I'm hoping if I post my complete code, perhaps someone will see something I've missed:

1) I am receiving a Statuscallback when checking my logs. Here is the latest I've tried (so I see my callback is working/this is direct from my logs):

23.23.3.152 - - [22/Dec/2012:13:16:01 -0400] "POST /app/assets/phone/contests/text_complete.php?contestid=307&account_id=17&callername=NS+Wireless+Call&callercity=HALIFAX&callerstate=NS HTTP/1.1" 200 160 "-" "TwilioProxy/0.7"

2) The total code for text_complete.php code is this:
<?php

	$callsid = $_REQUEST['SmsSid'];
	$callstatus=$_REQUEST['SmsStatus'];
	$to=$_REQUEST['To'];
	$contestid=$_REQUEST['contestid'];
	$account_id=$_REQUEST['account_id'];
	$body = $_REQUEST['Body'];
	$callername=$_REQUEST['callername'];
	$callercity=$_REQUEST['callercity'];
	$callerstate=$_REQUEST['callerstate'];
	$fromcaller=$_REQUEST['From'];	
	
	include '../../db/config.php';
	include '../../db/functions.php';
	

	
//make pretty looking phone number for table display using function
	$fromcallerdisplay = FromCallerDisplay($fromcaller);
	$tocallerdisplay = ToCallerDisplay($to);

//adjust time for incoming calls from timezone using function
$newtime =  GetRightTime($account_id);


$result = mysql_query("SELECT PhoneRate, account_id FROM numbers WHERE PhoneNumber = '$fromcaller' AND PhoneType = 2 LIMIT 1");
while ($row = mysql_fetch_array($result)) {
$phonerate = $row["PhoneRate"];
$account_id = $row["account_id"];
}
mysql_free_result($result);


$sql="INSERT INTO callers (account_id, CallType, CallDirection, ContestId, CallTo, ToCallerDisplay, CallSid, CallerName, CallerCity, CallerState, FromCaller, FromCallerDisplay, Body, CallStatus, CallDate, CallDuration, CallCost, SubscribeStatus)VALUES('$account_id','1','Outgoing','$contestid','$to','$tocallerdisplay','$callsid','$callername','$callercity','$callerstate','$fromcaller','$fromcallerdisplay','$body','$callstatus','$newtime','1','$phonerate','Pending')";
$result=mysql_query($sql);
       	
?>

Open in new window

When I go through the steps in my application, I see no errors in my logs and I see the statuscallback executed in the logs as shown at the top of the page.

If I simply try this url with the bare minimum of a variable attached: http://mydomain.com/app/assets/phone/contests/text_complete.php?account_id=17

The query will work and it will insert into my database the bare minimum. (I was doing this to double-check my query can insert OK). So it seems if even just the account_id is passed, I'll get an insert into my db.

When I plug in the test url above as my statuscallback url with just the required account_id... it doesn't work.

I can see the now shortened statuscallback in my logs show up... but for some reason it won't insert a record.

I simply can't figure out why it isn't inserting a record, even when I do the bare minimum url as my Statuscallback.

Is there some kind of permissions thing perhaps? Where you can visit the url and it will insert, but a callback won't insert?? Just trying to find some new direction to investigate.

Just in case, this is what my StatusCallback code looks like (maybe in case there is something wrong with the way its being formed?)
$subscribestatusmessage = "Hello from $company_name in $city! To subscribe, reply back with the word 'GO' and you are in.";

			/* Include the Twilio PHP library */
			require "../api/Twilio.php";

			/* Set our AccountSid and AuthToken */
			$AccountSid = "mysid";
			$AuthToken = "mytoken";
	
			$client = new Services_Twilio($AccountSid, $AuthToken);
   			
   			$options = array("StatusCallback" => "http://mydomain.com/app/assets/phone/contests/text_complete.php?contestid=".urlencode($contestid)."&account_id=".urlencode($account_id)."&callername=".urlencode($callername)."&callercity=".urlencode($callercity)."&callerstate=".urlencode($callerstate));

   			$sms = $client->account->sms_messages->create(
   			$textcalldisplay,
   			$fromcaller,
   			$subscribestatusmessage,
   			$options
   			);

Open in new window

PHPMySQL Server

Avatar of undefined
Last Comment
Ray Paseur

8/22/2022 - Mon
ASKER CERTIFIED SOLUTION
Ray Paseur

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
GET A PERSONALIZED SOLUTION
Ask your own question & get feedback from real experts
Find out why thousands trust the EE community with their toughest problems.
tjyoung

ASKER
Thanks gives me plenty to work with.
Ray Paseur

Thanks for the points and thanks for using EE.  And Merry Christmas! ~Ray
Experts Exchange is like having an extremely knowledgeable team sitting and waiting for your call. Couldn't do my job half as well as I do without it!
James Murphy