get — Отправка SMS из PHP-скрипта с помощью FreePBX Bootstrap

В приведенном ниже скрипте, который был написан неизвестной третьей стороной, единственными изменениями, которые я сделал, было изменение значений $ to, $ from и $ body с жестко запрограммированных строк на элементы $ _GET. Целью проекта является передача некоторых параметров этому сценарию в строке запроса, а затем создание, отправка и отправка SMS-сообщения.

<?php

/**** **** **** **** **** **** **** **** **** **** ****
* sms.php
*
* sample PHP code to send an SMS message to a registered
* extension on a FreeBX 12 server
*
* version history
*    2015-09-22   version 0 by [email protected]
**** **** **** **** **** **** **** **** **** **** ****/

// Load the FreeBPX bootstrap, requires FreePBX 12
if (!@include_once(getenv('FREEPBX_CONF') ? getenv('FREEPBX_CONF') : '/etc/freepbx.conf')) {
include_once('/etc/asterisk/freepbx.conf');
}

// The Asterisk Manager Class from the boostrap is $astman
// If using FreePBX 13+ must set asman with
//  $astman = new AGI_AsteriskManager( );
if ($astman) {
// $to = "sip:#######";
// $from = '"Caller ID Name" <#######>';
// $body = "cats are yummy";
$to = $_GET['to'];
$from = $_GET['from'];
$body = $_GET['body'];

$result = $astman->MessageSend($to, $from, $body);

print_r($result);   //debug

// the variable $result will be an array of the formats
// Array ( [Response] => Success [Message] => Message successfully sent )
// Array ( [Response] => Error [Message] => Message failed to send. )
} else {
echo "No Asterisk Manager Connection";
}

Однако, хотя этот сценарий отлично работает с этими закомментированными жестко заданными значениями, изменение этих значений на элементы $ _GET приводит к появлению этого сообщения об ошибке:

Array ( [Response] => Error [Message] => Message technology not found. )

Я пытаюсь найти какую-то документацию, чтобы объяснить мне, как это работает … Есть идеи от кого-то еще, кто работал с загрузкой FreePBX?

2

Решение

Решение этой проблемы заключалось не в кодировке документа или данных, или в том, что, возможно, этот API плохо работает со строками запросов (все три из которых приходили мне в голову в какой-то момент в течение дня), а секретом лежать в формате данных, передаваемых в API.

Ответ сидел у меня под носом все время:

// $to = "sip:#######";
// $from = '"Caller ID Name" <#######>';
// $body = "cats are yummy";
$to = $_GET['to'];
$from = $_GET['from'];
$body = $_GET['body'];

Итак, вот решение проблемы:

$to = 'sip:' . $_GET['to'];
$from = '"Caller ID Name" <' . $_GET['from'] . '>';
$body = $_GET['body'];

Вы можете передать свои данные через URL-адрес следующим образом:

http://www.url.com/sms.php?to=0000000&from=0000001&body=hello
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]