Доброго вечера, возможно по незнанию не смог найти ответ на свой вопрос, прошу строго не судить.
Есть Астериск, все работает прекрасно не можем нарадоваться и есть сайт на php с которого по клику удаленный менеджер совершает звонок по следуюущей схеме:
При клике на номер клиента идет звонок менеджеру на сотовый когда он поднимает трубку телефона то слышит сигнал вызова, клиент берет трубку и они разговаривают. по факту манго атс совершает два звонка, все настроено через API.
Как это реализовать через FrePBX? Уж очень дорого выходит звонить через АТС Манго.
А кто вам этовсё настраивал? Ясно, чтоневы самостоятельно, иначе этого вопроса бы не было тут. Рационально ыло бы обратиться к нему же.
Схема звонка реализвана как channel originate, можно потренироваться с этой командой в CLI Астериска.
Для этого нужно иметь зарегистрированых SIP абонентов во FreePBX, как внутренние номера.
Они могут звонить друг-другу, набирая внутренний номер? Надеюсь - да.
Так вот звонок для связи двух абонентов можно инициировать через channel originate в CLIследующим образом: вызывается первое плечо, при его ответе (ANSWER) автоматически вызывается второе плечо.
И первое, и второе плечо вызова может быть как внутренним, так и внешним абонентом.
Простой пример связи двух внутренних абонентов:
CLI> channel originate SIP/123 application Dial SIP/321
смотрите что будет происходить в CLI
Простой пример связи внутреннкго абонента и внешнего (клиента на моб. номере):
CLI> channel originate SIP/123 application Dial SIP/mango_trunk/89012345678
Освоите этот сценарий, можно перейти к таким же по смыслу вызовам, через AMI или call файлы.
Информацию об этом прошу искать самостоятельно, интернет позволяет.
Когда это всё будет доступно и опробовано, будет понятно как сайт на php оригинирует эти вызовы в Астериск (через AMI), по клику удаленного менеджера.
АТС настраивал сам, что то по юзермануалу, что то по подобию настройки Grandstream 6202
Код на PHP писал знакомый в телефонных АТС не понимающий.
Сейчас уезжаю в коммандировку, спасибо за подсказку, отпишусь в среду если будут еще вопросы.
код сейчас используем вот такой, но он не отрабатывает так как интернал используются тоже сотовый номер:
$originateRequest = "Action: Originate\r\n";
$originateRequest .= "Channel: PJSIP/$internalPhoneline\r\n";
$originateRequest .= "Callerid: Click 2 Call\r\n";
$originateRequest .= "Exten: $externalPhoneline\r\n";
$originateRequest .= "Context: $context\r\n";
$originateRequest .= "Priority: 1\r\n";
$originateRequest .= "Async: yes\r\n\r\n";
$originate = stream_socket_sendto($socket, $originateRequest);
выпадает с ошибкой создания естеншена с номеров сотового
Когда проверяем звонок через CLI получаем ошибку Authentication credentials not accepted by server. Credential failed to authenticate (PJSIP_EFAILEDCREDENTIAL)
строка дозвона channel originate PJSIP/314 application Dial PJSIP/номер@транк
если проверяем с синтаксисом указаным вами, то звонок даже не начинается
Спасибо, с внутреннено номера работает, но в том то и проблема, что я не понимаю как связать два сотовых, у менеджера нет внутреннего номера, надо что бы астериск звонил на сотовый менеджера, а после поднятие трубки на сотовый клиента.
смотрите, я наверно сумбурно объясняю..
есть три номера, внутренний канал - 400
сотовый менеджера - 8 999 999 9999
сотовый клиента - 8 911 111 1111
Командой channel originate PJSIP/314 extension номер@from-internal отправляем звонок на внутренний, но дозвон до сотового телефона менеджера начинается только после поднятия трубки внутреннего телефона ( это первая проблема)
какой командой их соединить после этого в один звонок (это вторая проблема)
где 89161234567 - мобильный менеджера, 89037654321 - мобильный клиента.
Создать звонок на канал Local/extension@context - это по смыслу всё равно что выполнить Goto(context,extension,1) - отправить звонок в нужное место диалплана.