Страница 1 из 1
PHP OrginateResponse
Добавлено: 02 ноя 2015, 15:30
Scorpion15
Добрый день!
Написан скрипт для звонка, все хорошо работает:
Код: Выделить всё
$actionid=md5($sip.$cl.$ext.time());
fwrite("Action: Originate\r\n");
fwrite("Channel: SIP/".$sip."\r\n");
fwrite("Callerid: ".$cl.">\r\n");
fwrite("Timeout: 15000\r\n");
fwrite("Context: ".$context."\r\n");
fwrite("Exten: ".$ext"\r\n");
fwrite("Async: yes\r\n\r\n" );
fwrite('ActionID: '.$actionid);
fwrite("Action: Logoff\r\n\r\n");
Но не могу понять, как мне получить originateresponse по звонку, мне нужно вытащить от туда uniqueid?
Re: PHP OrginateResponse
Добавлено: 03 ноя 2015, 01:18
zzuz
c Async: yes Вы ответа никакого не получите.
Re: PHP OrginateResponse
Добавлено: 03 ноя 2015, 07:54
Scorpion15
Мне нужно сопоставить звонок и cdr_mysql, как тогда сделать что бы и async остался и отловить uniqueid?
Re: PHP OrginateResponse
Добавлено: 03 ноя 2015, 08:08
virus_net
Вы оригинейтите вызов через AMI, в нем же можно отловить и UNIQID в Event Newchannel.
Re: PHP OrginateResponse
Добавлено: 03 ноя 2015, 08:57
Scorpion15
Т.е. после originate, мне надо freed-ом читать event's пока не увижу event Newchannel с моим actionid?
Re: PHP OrginateResponse
Добавлено: 04 ноя 2015, 08:45
virus_net
Зачем спрашивать то, что можно проверить самому ?
manager.conf писал(а):
[general]
enabled = yes
webenabled = no
port = 5038
bindaddr = 127.0.0.1
.....
[AMIuser]
deny=0.0.0.0/0.0.0.0
permit=127.0.0.1/255.255.255.255
secret = passw0rd
read = all
write = all
Код: Выделить всё
#telnet 127.0.0.1 5038
Action: login
Username: AMIuser
Secret: passw0rd
Events: on
Выполняем originate и смотрим в консоль.
Re: PHP OrginateResponse
Добавлено: 05 ноя 2015, 09:13
Scorpion15
Через консоль та все понятно. Меня интересует как это через php отловить?
Re: PHP OrginateResponse
Добавлено: 06 ноя 2015, 07:17
virus_net
Точно так же как и через консоль.
Подключиться к AMI и слушать + обрабатывать необходимые события скриптом PHP:
socket_connect
Re: PHP OrginateResponse
Добавлено: 06 ноя 2015, 07:37
Scorpion15
Ясно, спасибо! Я думал есть более простое решения получить id звонка, без прослушивания всех событий...
Re: PHP OrginateResponse
Добавлено: 06 ноя 2015, 10:32
virus_net
Можно цеплять из вывода:
ID вызова в самом конце строки.
Соответственно AMI:
Код: Выделить всё
Action: command
Command: core show channels concise