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

выявление IVR, или выявление раб. канала

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

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

zimaell
Сообщения: 7
Зарегистрирован: 08 июн 2015, 18:07

выявление IVR, или выявление раб. канала

Сообщение zimaell »

Как можно выявить что с канала нельзя позвонить? То есть деньги закончились или еще какая то причина, на сколько я понимаю то когда деньги закончились то говорит оператор сразу, так вот как его сразу распознавать?
Либо как можно узнавать можно ли сделать звонок с канала, либо нельзя по каким то причинам?

Думаю что нужно делать некий проверочный канал куда остальные каналы будут звонить и проверяться смогли ли они дозвониться, только вот как правильно это сделать?
ded
Сообщения: 15630
Зарегистрирован: 26 авг 2010, 19:00

Re: выявление IVR, или выявление раб. канала

Сообщение ded »

Определитесь: SIP канал? GSM канал? Через шлюз? Напрямую - как?
Универсального ответа нет. Каждый оператор/шлюз - сам себе голова. Один будет возвращать код ошибки, типа Service unavailable, другой - автоматным голосом говорить "сервис недоступен".
Во втором случае для вашей системы это будет состоявееся соединение со статусом Answered & Hangup, но с нулевым charges - денег не снимают.
zimaell
Сообщения: 7
Зарегистрирован: 08 июн 2015, 18:07

Re: выявление IVR, или выявление раб. канала

Сообщение zimaell »

SIP на прямую, я пробовал проверять по средствам пхп

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

$trunk='test_trunk';
$call_number='...........';
$oSocket=fsockopen("127.0.0.1", 5038, $errnum, $errdesc);
fputs($oSocket, "Action: login\r\n");
fputs($oSocket, "Username: ........\r\n");
fputs($oSocket, "Secret: ...........\r\n\r\n");
fputs($oSocket, "Events: on\r\n");
fputs($oSocket, "Action: originate\r\n");
fputs($oSocket, "Channel: SIP/".$trunk."/".$call_number."\r\n");
fputs($oSocket, "Timeout: 15000\r\n");
fputs($oSocket, "Exten: ".$call_number."\r\n");
fputs($oSocket, "Context: webcall\r\n");
fputs($oSocket, "Priority: 1\r\n\r\n");
fputs($oSocket, "Action: Logoff\r\n\r\n");
$wrets=""; while (!feof($oSocket)){ $wrets .= fread($oSocket, 8192).'</br>'; }
fclose($oSocket);
echo "<pre>".$wrets."<br><br>";
но так не всегда правильно ответы дает, да и вообще в ответе другие каналы какого то делают, вот и думаю в какую сторону копать -этот код немного подправить либо я вообще не в том направлении копаюсь?
zimaell
Сообщения: 7
Зарегистрирован: 08 июн 2015, 18:07

Re: выявление IVR, или выявление раб. канала

Сообщение zimaell »

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

Re: выявление IVR, или выявление раб. канала

Сообщение ded »

Чёткий ответ в каком состоянии канал даёт ${CHANISAVAIL}, надо Вам подробно почитать в книге про Будущее телефонии. Вы не решите все свои вопросы на основе только знаний РНР. Но когда деньги закончились и говорит оператор сразу, и как его сразу распознавать - это уже совсем другая задача.
zimaell
Сообщения: 7
Зарегистрирован: 08 июн 2015, 18:07

Re: выявление IVR, или выявление раб. канала

Сообщение zimaell »

Но когда деньги закончились и говорит оператор сразу, и как его сразу распознавать - это уже совсем другая задача.
а можно ссылочку где можно про подобные задачи и их решения почитать?
zimaell
Сообщения: 7
Зарегистрирован: 08 июн 2015, 18:07

Re: выявление IVR, или выявление раб. канала

Сообщение zimaell »

ничего из выше сказанного не помогло, да и решение задачи нужно полностью или частично с помощью пхп, задача вроде кажется и проста - позвонить с одного канала на другой и получить ответ смог ли он дозвониться до него или нет, почему с пхп , что бы скрипт автоматом проверял каналы через определенное время и отмечал что в каком состоянии. Просто на сколько я сейчас накопал то через Originate более менее зачастую это можно выяснить ( но не всегда ), может диалплан нужно правильно составить, может через аги как то, не могу пока понять как это правильно сделать....
ded
Сообщения: 15630
Зарегистрирован: 26 авг 2010, 19:00

Re: выявление IVR, или выявление раб. канала

Сообщение ded »

что бы скрипт автоматом проверял каналы через определенное время - есть cron
чтобы отмечал что в каком состоянии. - есть нативная база asteriskdb
Что же вы докопались через РНР? Вариантов - уйма!
zimaell
Сообщения: 7
Зарегистрирован: 08 июн 2015, 18:07

Re: выявление IVR, или выявление раб. канала

Сообщение zimaell »

Что же вы докопались через РНР? Вариантов - уйма!
У меня сайт работает на пхп ( в смысле страницы генерирует пхп ), кучи функций тоже сделаны на пхп, так же через пхп AGI осуществляются звонки, вот только проверку осталось сделать...
Да и с пхп я давно "дружу" а с астером так знакомлюсь только (подключал его не я), вот и задал вопрос как новичок в этом деле...
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH