Asterisk настраиваем click2call

Для настройки нам понадобится сначала включить AMI:

/etc/asterisk/manager.conf

[general]
enabled = yes
port = 5038
bindaddr = 0.0.0.0
[muser01]
secret=mypassword
deny=0.0.0.0/0.0.0.0
permit=0.0.0.0/0.0.0.0
read=system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate
write=system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate

Применяем изменения:

asterisk -rx "manager reload"

В нашей системе должны быть зарегистрированы SIP пользователи. Допустим у нас есть 2 подключенных SIP пользователя: 200 и 201.

Далее нам понадобится веб-сервер на котором можно поместить php-скрипт следующего содержания:

<?php

# --- define globals ---
$strhost = "localhost";
$strport = "5038";
$timeout = "10";
# --- define ---
$num=$_REQUEST['num'];
$cid=$_REQUEST['cid'];
$c=$_REQUEST['c'];
$w=$_REQUEST['w'];
$p=$_REQUEST['p'];

$errno=0 ;
$errstr=0 ;

$sconn = fsockopen ($strhost, $strport, &$errno, &$errstr, $timeout) or die("Connection to $strhost:$strport failed");

if (!$sconn) { echo "$errstr ($errno)<br>\n"; } 

  else {

  fputs ($sconn, "Action: login\r\n");
  fputs ($sconn, "Username: muser01\r\n");
  fputs ($sconn, "Secret: mypassword\r\n");
  fputs ($sconn, "Events: off\r\n\r\n");
  usleep(500);

  fputs ($sconn, "WaitTime: $w\r\n");
  fputs ($sconn, "Action: Originate\r\n");
  fputs ($sconn, "Channel: SIP/$cid\r\n");
  fputs ($sconn, "Callerid: $cid\r\n");
  fputs ($sconn, "Context: $c\r\n");
  fputs ($sconn, "Exten: $num\r\n");
  fputs ($sconn, "Priority: $p\r\n\r\n");
  fputs ($sconn, "Async: yes\r\n\r\n" );
  fputs ($sconn, "Action: Logoff\r\n\r\n");
  usleep (500);

  fclose ($sconn);

  # --- debug output ---
  echo nl2br("Exten: $num
              Channel: SIP/$cid
              Context: $c
              WaitTime: $w
              Priority: $p");
  } 

?>

Теперь все готово для тестирования:

http://domain.com/dev/call.php?w=5&p=1&c=external_out&cid=200&num=84951234567

Где:

w= время ожидания
p= приоритет
c= ваш контекст
cid= SIP пир, с которого совершаем вызов
num= номер, с которым соединяем 200

Related posts:

  1. Asterisk – установка Fail2Ban Очень часто мы сталкиваемся с атаками на SIP-серверы, особенно когда...
  2. Asterisk и запись разговоров в MP3 По-умолчанию Asterisk пишет запись разговоров в WAV-формат, многих это не...
  3. Installing Asterisk and FreePBX on Ubuntu Server 6.06 LTS This document assumes prior knowledge of how to use Linux...
  4. Asterisk – храним CDR в БД MySQL. Asterisk. Настройка. Статья#1. Складываем CDR в MySQL. Должны быть установлены...
You can leave a response, or trackback from your own site.

Оставить комментарий

*