VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

callback в Elastix.

Обо всем касательно FreePBX, MetPBX, TrixBox, Elastix, AstPBX и всех других дистрибутивов

Модераторы: april22, Zavr2008

Ответить
truthful-liar
Сообщения: 19
Зарегистрирован: 22 авг 2014, 15:29

callback в Elastix.

Сообщение truthful-liar »

Всем привет! Пытаюсь поправить скрипт коллбека эластикса, чтобы тот сначала звонил на внутренний номер, потом наружу.
Поменял местами номера, но скрипт не отрабатывает. переменные $channel, $exten, $context.

БЫЛО

Код: Выделить всё

$channel = "Local/".$callback_number."@from-internal";
$exten = $callback_exten;
$contex = $callback_context;
СТАЛО

Код: Выделить всё

$channel = "SIP/".$callback_exten."@".$callback_context;
$exten = "Local/".$callback_number;
$contex = "@from-internal";

Где я ошибся?

Полный код скрипта:

Код: Выделить всё

#!/usr/bin/php -q
<?php
/*
This Callback script takes 7 arguments:
1- number to dial
2- context.exten.priority to dump number into
3- optional time in seconds to sleep before calling back

eg: callback 14032448089 ext-meetme.200.1
*/
//Copyright (C) 2004 Coalescent Systems Inc. (info@coalescentsystems.ca)
//Copyright (C) 2010 Astrogen LLC
//This file is part of FreePBX.
//
//    FreePBX is free software: you can redistribute it and/or modify
//    it under the terms of the GNU General Public License as published by
//    the Free Software Foundation, either version 2 of the License, or
//    (at your option) any later version.
//
//    FreePBX is distributed in the hope that it will be useful,
//    but WITHOUT ANY WARRANTY; without even the implied warranty of
//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//    GNU General Public License for more details.
//
//    You should have received a copy of the GNU General Public License
//    along with FreePBX.  If not, see <http://www.gnu.org/licenses/>.
?>

<?php

if ($argc < 3) {
  cb_fatal("Wrong number of arguments, should be:\n".$argv[0]." callback_number callback_destination [delay_seconds]\n");
}

$callback_number = $argv[1];
$callback_destination = $argv[2];
$pause_seconds = isset($argv[3]) ? $argv[3] : 0;

// bootstrap the connection to get astman up
//
$restrict_mods = true;
$bootstrap_settings['freepbx_auth'] = false;
if (!@include_once(getenv('FREEPBX_CONF') ? getenv('FREEPBX_CONF') : '/etc/freepbx.conf')) { 
  include_once('/etc/asterisk/freepbx.conf');
}

if($pause_seconds) {
	sleep($pause_seconds);
}
// figure out context, exten, priority
$dest = explode(".",$callback_destination);
$callback_context = $dest[0];
$callback_exten = $dest[1];
$callback_priority = $dest[2];

//define the args for Originate

$channel = "Local/".$callback_number."@from-internal";
$exten = $callback_exten;
$context = $callback_context;

$priority = $callback_priority;
$timeout = "15000";
$callerid = "Callback";
$variable = "";
$account = "";
$application = "";
$data = "";

if ($bootstrap_settings['astman_connected']) {
	$astman->Originate($channel, $exten, $context, $priority, $timeout, $callerid, $variable, $account, $application, $data);
  $astman->disconnect();
} else {
	cb_fatal("Cannot connect to Asterisk Manager with ".$amp_conf["AMPMGRUSER"]."/".$amp_conf["AMPMGRPASS"]);
}

function cb_fatal($text) {
	echo "[FATAL] ".$text."\n";
	exit(1);
}
?>
Аватара пользователя
zzuz
Сообщения: 1658
Зарегистрирован: 21 сен 2010, 13:33
Контактная информация:

Re: callback в Elastix.

Сообщение zzuz »

Код: Выделить всё

$channel = "SIP/".$callback_exten."@".$callback_context;
Получается SIP/1234@callback-context , и куда по вашему это уйдет? Исправляйте. Вообще всё неправильно. Не трогайте , пожалуйста , код, это не для Вас.
Линия24 - Системы Массового Телефонного Обслуживания
truthful-liar
Сообщения: 19
Зарегистрирован: 22 авг 2014, 15:29

Re: callback в Elastix.

Сообщение truthful-liar »

А разве $callback_context не должна возвращать нужный контекст, переданый скрипту?
как должен выглядеть $channel для звонка на внутренний номер?

P.S. Все мы учились по немногу... Я только в начале большого пути.

спасибо, разобрался!! :)

должно было быть

Код: Выделить всё

$channel = "SIP/".$callback_exten;
$exten = $callback_number;
$contex = "from-internal";
truthful-liar
Сообщения: 19
Зарегистрирован: 22 авг 2014, 15:29

Re: callback в Elastix.

Сообщение truthful-liar »

И еще вопрос! Коллбек на конкретный экстеншн отрабатывает на ура! Как звонок с коллбека завернуть на ринг груп?
Попробывал использовать фолоу ми, работает. Но это ж отдельный телефон надо держать для этих целей :D

подозреваю что вместо "SIP/" надо указать чтото другое. Как сказать, что это очередь или ринг групп.
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: callback в Elastix.

Сообщение ded »

Вы справитесь!
truthful-liar
Сообщения: 19
Зарегистрирован: 22 авг 2014, 15:29

Re: callback в Elastix.

Сообщение truthful-liar »

ну серьезно... возможно ли в параметр Channel команды Originate записать очередь или ринг групп?
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: callback в Elastix.

Сообщение ded »

By default - возможно вообще всё что угодно!
Надо стараться.
virus_net
Сообщения: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: callback в Elastix.

Сообщение virus_net »

мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
truthful-liar
Сообщения: 19
Зарегистрирован: 22 авг 2014, 15:29

Re: callback в Elastix.

Сообщение truthful-liar »

очень полезно, спасибо! Использовал запись типа Local/номергруппы@from-internal
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH