Суть задачи:
1. запускается python скрипт, который читает файл с номерами. каждый номер - это номер кому следует позвонить
2. скрипт отдает этот номер на астер через ami
3. asterisk в свою очерередь должен позвонить клиенту через sip задармы и проиграть подготовленную запись с интерачтивным меню
Так вот, с IVR меню я могу разобраться, но вот с написанием dialplan возникли трудности..
Что имеем
sip.conf c настройками zadarma (в настройках callerid у zadarma указан мобильный телефон)
Код: Выделить всё
[zadarm]
type = peer
defaultuser = 214181
secret = secret
host = sip.zadarma.ru
context = zvonar
fromuser = 214181
fromdomain = sip.zadarma.com
disallow=all
allow = alaw
allow = ulaw
nat = force_rport,comedia
canreinvite = no
dtmfmode = rfc2833
qualify = yes
Код: Выделить всё
[zvonar]
secret = 9008
permit = 0.0.0.0/0.0.0.0
read = system,call,log,verbose,command,agent,user,originate
write = system,call,log,verbose,command,agent,user,originate
Код: Выделить всё
[zvonar]
exten => s,1,NoOp(Звонок через zadarma на номер +7${EXTEN:1})
same => n,Dial(SIP/zadarm/+7${EXTEN:1},60)
same => n,Hangup
Код: Выделить всё
#!/usr/bin/python
# -*- codding: utf-8 -*-
from asterisk.ami import AMIClient
from asterisk.ami import SimpleAction
client = AMIClient(address='192.168.0.6',port=5038)
client.login(username='zvonar',secret='secret')
action = SimpleAction(
'Originate',
Channel='SIP/zadarm',
Exten=89039904644,
Priority=1,
Context='default',
CallerID='+79520031967',
)
client.send_action(action)
client.logoff()
При запуске скрипта получаю
Код: Выделить всё
== Manager 'zvonar' logged on from 192.168.0.99
== Using SIP RTP CoS mark 5
-- Called zadarm
-- Got SIP response 486 "Busy" back from 185.45.152.161:5060
-- SIP/zadarm-00000114 is busy
== Manager 'zvonar' logged off from 192.168.0.99