1+ <?php
2+ require_once __DIR__ ."/vendor/autoload.php " ;
3+ require_once "root.php " ;
4+ require_once "resources/require.php " ;
5+ require_once "resources/check_auth.php " ;
6+
7+ header ("Content-Type: application/json " );
8+
9+ foreach ($ _SESSION ['user ' ]['extension ' ] as $ ext ) {
10+ if ($ ext ['extension_uuid ' ] == $ _GET ['extension_uuid ' ]) {
11+ $ extension = $ ext ;
12+ break ;
13+ }
14+ }
15+
16+ if (!$ extension ) {
17+ http_response_code (400 );
18+ echo json_encode (array ("error " => "invalid or unauthorized extension " ));
19+ die ();
20+ }
21+
22+ $ database = new database ;
23+
24+ // get user's number
25+ $ sql = "SELECT phone_number FROM webtexting_destinations WHERE phone_number = :phone_number AND extension_uuid = :extension_uuid " ;
26+ $ parameters ['extension_uuid ' ] = $ extension ['extension_uuid ' ];
27+ $ parameters ['phone_number ' ] = $ _GET ['dialedNumber ' ];
28+
29+ $ ownNumber = $ database ->select ($ sql , $ parameters , 'all ' );
30+ unset($ parameters );
31+ //if number found continue registration hitting the sms.callpipe api
32+ // else return a legible fail message
33+ if ($ ownNumber [0 ]){
34+
35+ $ desiredWebhookURL = "https:// " .$ _SESSION ['domain_name ' ]."/app/webtexting/inbound-hook.php?provider=accelerate-networks " ;
36+ $ validNumber = _checkValidDestination ($ ownNumber [0 ]);
37+ //the json_deecode(json_encode()) abomination is stackoverflow hax
38+ //echo($validNumber);
39+ if ($ validNumber ){
40+ $ registered = json_encode ($ validNumber );
41+ echo (json_encode ($ validNumber ));
42+ return json_encode ($ validNumber );
43+ }
44+ }
45+ else {
46+ echo ("Invalid phone number. Contact Accelerate Networks support staff. " );
47+ }
48+
49+
50+
51+ function _checkValidDestination (array $ ownPhone )
52+ {
53+ $ args ['asDialed ' ]= $ ownPhone ['phone_number ' ];
54+ AccelerateNetworks::ValidateAccessToken ();
55+ $ client = new GuzzleHttp \Client ();
56+ $ res = $ client ->request (
57+ 'GET ' , "https://sms.callpipe.com/client " , [
58+ 'headers ' => [
59+ 'Authorization ' => "Bearer " .$ _SESSION ['webtexting ' ]['acceleratenetworks_api_key ' ]['text ' ],
60+ ],
61+ 'http_errors ' => false ,
62+ 'query ' => ['asDialed ' => $ args ['asDialed ' ] ],
63+ ],
64+ );
65+ if ($ res ->getStatusCode () == 200 ){
66+ //everything's fine do nothing.
67+ $ responseBody = ($ res ->getBody ()->getContents ());
68+ //echo($responseBody);
69+ $ testcheck = json_decode ($ responseBody );
70+ return $ responseBody ;
71+ }
72+ else {
73+ error_log ("got " .$ res ->getStatusCode ()." " .$ res ->getReasonPhrase ()."\n" );
74+ $ responseBody = json_encode ($ res ->getBody ());
75+ error_log ("response body: " .print_r ($ responseBody , true )."\n" );
76+ }
77+ }
0 commit comments