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

PHP OrginateResponse

Раздел для разработчиков для обсуждения программных и аппаратных продуктов и их реализации.

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

Ответить
Scorpion15
Сообщения: 29
Зарегистрирован: 14 дек 2012, 13:13

PHP OrginateResponse

Сообщение 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?
Аватара пользователя
zzuz
Сообщения: 1658
Зарегистрирован: 21 сен 2010, 13:33
Контактная информация:

Re: PHP OrginateResponse

Сообщение zzuz »

c Async: yes Вы ответа никакого не получите.
Линия24 - Системы Массового Телефонного Обслуживания
Scorpion15
Сообщения: 29
Зарегистрирован: 14 дек 2012, 13:13

Re: PHP OrginateResponse

Сообщение Scorpion15 »

Мне нужно сопоставить звонок и cdr_mysql, как тогда сделать что бы и async остался и отловить uniqueid?
virus_net
Сообщения: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: PHP OrginateResponse

Сообщение virus_net »

Вы оригинейтите вызов через AMI, в нем же можно отловить и UNIQID в Event Newchannel.
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
Scorpion15
Сообщения: 29
Зарегистрирован: 14 дек 2012, 13:13

Re: PHP OrginateResponse

Сообщение Scorpion15 »

Т.е. после originate, мне надо freed-ом читать event's пока не увижу event Newchannel с моим actionid?
virus_net
Сообщения: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: PHP OrginateResponse

Сообщение 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 и смотрим в консоль.
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
Scorpion15
Сообщения: 29
Зарегистрирован: 14 дек 2012, 13:13

Re: PHP OrginateResponse

Сообщение Scorpion15 »

Через консоль та все понятно. Меня интересует как это через php отловить?
virus_net
Сообщения: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: PHP OrginateResponse

Сообщение virus_net »

Точно так же как и через консоль.
Подключиться к AMI и слушать + обрабатывать необходимые события скриптом PHP: socket_connect
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
Scorpion15
Сообщения: 29
Зарегистрирован: 14 дек 2012, 13:13

Re: PHP OrginateResponse

Сообщение Scorpion15 »

Ясно, спасибо! Я думал есть более простое решения получить id звонка, без прослушивания всех событий...
virus_net
Сообщения: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: PHP OrginateResponse

Сообщение virus_net »

Можно цеплять из вывода:

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

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

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

Action: command
Command: core show channels concise
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH