Help

Configure Asterisk


Настройка PaperFree + Asterisk

Система PaperFree может работать с системой Asterisk, отображая уведомления о новых звонках и прослушивая записи разговоров. Также все звонки автоматически привязываются к существующим клиентам (по номеру телефона). 
Для настройки вашего сервера Asterisk необходимо выполнить следующие операции:

Чтобы система PaperFree получала уведомления от Asterisk, что поступил новый звонок, отвечен или нет, а также получать информацию о исходящих вызовах,  нужно делать вызов URL и передавать параметры (GET или POST).

Когда поступил новый звонок от клиента

http://paperfree.com/User/StartCall/{UserName}

параметры:

ПараметрОписаниепараметр в Asterisk
xid ID звонка ${UNIQUEID}
callerid  номер телефона клиента ${CALLERID(num)}
ourphone собственный номер телефона, на который произведен звонок ${EXTEN}
 
{UserName} - это название вашей компании, указанной в латиннице при регистрации.

Когда совершается исходящий звонок

http://paperfree.com/User/StartCall/{UserName}

параметры:
ПараметрОписаниепараметр в Asterisk
xid ID звонка ${UNIQUEID}
callerid  номер телефона клиента ${CDR(src)}
ourphone собственный номер телефона, на который произведен звонок ${EXTEN}
type  входящий или исходящий вызов (строка). Должен всегда быть 'out' для исходящих звонков. out
oper логин в Asterisk оператора, который совершает звонок (или подымает трубку) ${CALLERID(num)}
 
{UserName} - это название вашей компании, указанной в латиннице при регистрации.

Когда оператор или клиент поднял трубку

http://paperfree.com/User/CallAnswer/{UserName}

параметры:
ПараметрОписаниепараметр в Asterisk
xid ID звонка ${UNIQUEID}
callerid  номер телефона клиента ${CALLERID(num)}
ourphone номер телефона, на который произведен звонок ${EXTEN}
type  входящий или исходящий вызов  out - исходящий
in - входящий 
oper (необязательно) логин в Asterisk оператора, который совершает звонок (или подымает трубку)  ${CDR(src)}
 

{UserName} - это название вашей компании, указанной в латиннице при регистрации.

Когда звонок закончен (повесили трубку или не дозвонились)

http://paperfree.com/User/EndCall/{UserName}

параметры:
ПараметрОписаниепараметр в Asterisk
xid ID звонка ${UNIQUEID}
callerid  номер телефона клиента ${CALLERID(num)}
ourphone номер телефона, на который произведен звонок ${EXTEN}
type  входящий или исходящий вызов  out - исходящий
in - входящий 
 

{UserName} - это название вашей компании, указанной в латиннице при регистрации.

Дополнительные рекомендации по настройке (примеры)

Ниже приведены примеры по настройке Asterisk.
Для примера, название компании указано как - TestCompany. Вам нужно указать свою собственную.
Номер компании используется как 88001112222 или ${EXTEN} или (если в макросе), то ${MACRO_EXTEN}. Это все одно и тоже.

Когда поступил новый звонок от клиента

Необходимо вызвать http://paperfree.com/User/StartCall/TestCompany. Для этого подойдет такая стройка в файле extensions.conf

exten=>_X.,n,System(curl -d xid=${UNIQUEID} -d callerid=${CALLERID(num)} -d ourphone=${EXTEN} http://paperfree.com/User/CallAnswer/TestCompany)

Когда совершается исходящий звонок

Необходимо вызвать http://paperfree.com/User/StartCall/TestCompany. Для этого подойдет такая стройка в файле extensions.conf
exten=>_X.,n,System(curl -d xid=${UNIQUEID} -d oper=${CALLERID(num)} -d type=out callerid= ${CDR(src)} -d ourphone=${EXTEN} http://paperfree.com/User/CallAnswer/TestCompany)

Когда оператор поднял трубку (входящий вызов)

Внимание! Необходимы различные конфигурации для входящих и исходящих вызовов, так как Asterisk используется в качестве номера звонящего ${CALLERID(num)} того, кто позвонил. Если это исходящий - то это номер оператора, а если входящий - то номер клиента.
Необходимо вызвать http://paperfree.com/User/StartCall/TestCompany. Для этого могут потребоваться немного другие настройки в extensions.conf. 
Может потребоваться создать отдельный макрос, который нужно указать Asterisk, чтобы он его вызывал при поднятии трубки.
Макрос можно поместить в любом месте в файле extensions.conf:
[macro-callanswer]
;${ARG1} - ${CALLERID(num)}
;${ARG2} - ${UNIQUEID}
exten =>s,1,System(curl -d xid=${ARG2} -d oper=${CDR(src)} -d callerid=${ARG1} -d ourphone=${MACRO_EXTEN} http://paperfree.com/User/CallAnswer/TestCompany)
  • В обычном режиме можно вызвать так:
    exten=>_X.,n,System(curl -d xid=${UNIQUEID} -d callerid=${CALLERID(num)} -d ourphone=88001112222 -d oper=${CDR(src)} http://paperfree.com/User/StartCall/TestCompany)
  • Если используется очередь, тогда можно указать такую настройку (важное указано жирным)
exten =>_X.,n,Queue(queueName,tT,,,40,,"callanswer,${CALLERID(num)},${UNIQUEID}")
  • Если используется команда Dial (важное указано жирным):
    exten=>_X.,n,Dial(SIP/{Ваш_номер},,TM(callanswer^${CALLERID(num)},${UNIQUEID}))

Когда клиент поднял трубку (исходящий вызов)

Внимание! Необходимы различные конфигурации для входящих и исходящих вызовов, так как Asterisk используется в качестве номера звонящего ${CALLERID(num)} того, кто позвонил. Если это исходящий - то это номер оператора, а если входящий - то номер клиента.
Необходимо вызвать http://paperfree.com/User/StartCall/TestCompany. Для этого могут потребоваться немного другие настройки в extensions.conf. 
Может потребоваться создать отдельный макрос, который нужно указать Asterisk, чтобы он его вызывал при поднятии трубки.
Макрос можно поместить в любом месте в файле extensions.conf:
[macro-callanswerout]
;${ARG1} - ${CALLERID(num)
;${ARG2} - ${UNIQUEID}
;${ARG3} - operator

exten =>s,1,System(curl -d xid=${ARG2} -d oper=${ARG3} -d callerid=${ARG1} -d ourphone=88001112222 http://paperfree.com/User/CallAnswer/TestCompany)
  • В обычном режиме можно вызвать так:
    exten=>_X.,n,System(curl -d xid=${UNIQUEID} -d callerid=${CDR(src)} -d ourphone=88001112222 -d oper=${CALLERID(num)} -d type=out http://paperfree.com/User/StartCall/TestCompany )
  • Если используется команда Dial (важное указано жирным):
    exten=>_X.,n,Dial(SIP/{Ваш_номер},,TM(callanswerout^${CDR(src)},${UNIQUEID},${CALLERID(num)}))

Когда звонок закончен (повесили трубку или не дозвонились)

http://paperfree.com/User/EndCall/TestCompany

Уведомить PaperFree также можно несколькими способами:

  • В обычном режиме можно вызвать использовать следующее (для входящего звонка). Эту конфигурацию можно указать в самом низу вашего плана, прямо перед командой exten=>_X.,n,Hangup():
    exten=>_X.,n,System(curl -d xid=${UNIQUEID} -d callerid=${CALLERID(num)} -d ourphone=88001112222 -d oper=${CDR(src)} http://paperfree.com/User/EndCall/TestCompany)
  • В обычном режиме можно использовать (для исходящего звонка). Эту конфигурацию можно указать в самом низу вашего плана, прямо перед командой exten=>_X.,n,Hangup():
    exten=>_X.,n,System(curl -d xid=${UNIQUEID} -d callerid=${CDR(src)} -d ourphone=88001112222 -d oper=${CALLERID(num)} -d type=out http://paperfree.com/User/EndCall/TestCompany)
 В случае, когда используется запись звонка через команду MixMonitor, а затем идет конвертация файла WAV в MP3 можно сделать следующее:
  1. Создать исполняемый файл  callend.sh с таким содержимым
    #!/bin/sh
    # name of this script: wav2mp3.sh
    # wav to mp3

    lame -b 16 --silent "/var/spool/asterisk/monitor/$1.wav" "/var/spool/asterisk/monitor/MP3/$1.mp3"
    rm -f "/var/spool/asterisk/monitor/$1.wav"
    curl -d xid=$1 -d callerid=$2 -d ourphone=$3 http://login.paperfree.ru/User/EndCall/TestCompany
  2. Вызывать команду, указанную ниже, когда звонок окончен
    (для входящего звонка):
    exten =>_s,n,Set(monopt=nice -n 19 /home/asterisk/callend.sh ${UNIQUEID} ${CALLERID(num)} 88001112222)
    exten =>_s,n,MixMonitor(/var/spool/asterisk/monitor/${UNIQUEID}.wav,b,${monopt})
    (для исходящего звонка):
    exten =>_s,n,Set(monopt=nice -n 19 /home/asterisk/callend.sh ${UNIQUEID} ${CDR(src)} 88001112222)
    exten =>_s,n,MixMonitor(/var/spool/asterisk/monitor/${UNIQUEID}.wav,b,${monopt})







    Sponsored from PaperFree Magazine:
    paperfree
    Real Estate Investment Principles by Billionaire Bruce Flatt

     

    Copyright © 2022 PaperFree.com Inc. All rights reserved and data products are owned and distributed by PaperFree.com Inc. and its subsidiaries. | About | Feedback | All Contacts  |  ID: 979-446-8934 S/N 78675-0 | SID 487999-3 | Version 5.2  Powered by PaperFree.com | Legal