Ответы пользователя по тегу PHP
  • Есть ли такая возможность?

    lumian
    @lumian
    У меня это реализовано через Asterisk ami.

    Код вызова через asterisk ami на php:
    $ami_param = array(
    	'hostname'		=> '<IP_адрес_asterisk>',
    	'port'			=> '5038',
    	'username'		=> '<ami_username>',
    	'password'		=> '<ami_password>',
    	'wait_time'		=> '60000',
    	'priority'		=> '1',
    );
    
    // Выполняем звонок
    $oSocket = fsockopen($ami_param['hostname'], $ami_param['port'], $errnum, $errdesc) or die("Connection to host failed");
    sleep(1);
    fputs($oSocket, "Action: login\r\n");
    fputs($oSocket, "Events: off\r\n");
    fputs($oSocket, "Username: ".$ami_param['username']."\r\n");
    fputs($oSocket, "Secret: ".$ami_param['password']."\r\n\r\n");
    
    fputs($oSocket, "Action: originate\r\n");
    fputs($oSocket, "Channel: SIP/".$command['number_src']."\r\n");
    fputs($oSocket, "Timeout: ".$ami_param['wait_time']."\r\n");
    fputs($oSocket, "Context: ".$ami_param['context']."\r\n");
    fputs($oSocket, "CallerId: ".$command['number_src']."\r\n");
    fputs($oSocket, "Exten: ".$command['number_dst']."\r\n");
    fputs($oSocket, "Priority: ".$ami_param['priority']."\r\n");
    fputs($oSocket, "Async: yes\r\n\r\n");
    fputs($oSocket, "Action: Logoff\r\n\r\n");
    sleep(1);
    fclose($oSocket);

    По итогу получаю: пользователь жмет кнопку, ему алертом выкидывается предупреждение о том, что сейчас будет, далее идет звонок на телефон юзера (берется из базы корп. сайта), а далее на необходимый номер.

    Внимание! Сделайте куеву тучу проверок на исходящий номер, чтобы не попасть на бабло.
    Ответ написан