Страница 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

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

# asterisk -rx 'manager reload'

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

#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
Можно цеплять из вывода:

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

*CLI> core show channels concise
ID вызова в самом конце строки.
Соответственно AMI:

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

Action: command
Command: core show channels concise