Страница 1 из 2

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

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

Думаю что нужно делать некий проверочный канал куда остальные каналы будут звонить и проверяться смогли ли они дозвониться, только вот как правильно это сделать?

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

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

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

Добавлено: 08 июн 2015, 22:42
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>";
но так не всегда правильно ответы дает, да и вообще в ответе другие каналы какого то делают, вот и думаю в какую сторону копать -этот код немного подправить либо я вообще не в том направлении копаюсь?

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

Добавлено: 08 июн 2015, 23:00
zimaell
SIP , по сути нужно сделать звонок с одного канала на другой и получить четкий ответ в каком состоянии канал....

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

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

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

Добавлено: 09 июн 2015, 12:01
zimaell
Но когда деньги закончились и говорит оператор сразу, и как его сразу распознавать - это уже совсем другая задача.
а можно ссылочку где можно про подобные задачи и их решения почитать?

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

Добавлено: 09 июн 2015, 13:08
ded

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

Добавлено: 10 июн 2015, 13:49
zimaell
ничего из выше сказанного не помогло, да и решение задачи нужно полностью или частично с помощью пхп, задача вроде кажется и проста - позвонить с одного канала на другой и получить ответ смог ли он дозвониться до него или нет, почему с пхп , что бы скрипт автоматом проверял каналы через определенное время и отмечал что в каком состоянии. Просто на сколько я сейчас накопал то через Originate более менее зачастую это можно выяснить ( но не всегда ), может диалплан нужно правильно составить, может через аги как то, не могу пока понять как это правильно сделать....

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

Добавлено: 10 июн 2015, 14:41
ded
что бы скрипт автоматом проверял каналы через определенное время - есть cron
чтобы отмечал что в каком состоянии. - есть нативная база asteriskdb
Что же вы докопались через РНР? Вариантов - уйма!

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

Добавлено: 10 июн 2015, 14:53
zimaell
Что же вы докопались через РНР? Вариантов - уйма!
У меня сайт работает на пхп ( в смысле страницы генерирует пхп ), кучи функций тоже сделаны на пхп, так же через пхп AGI осуществляются звонки, вот только проверку осталось сделать...
Да и с пхп я давно "дружу" а с астером так знакомлюсь только (подключал его не я), вот и задал вопрос как новичок в этом деле...