Форум сайта python.su
Здравствуйте, питонеры. Начал изучать язык недавно. Нужна была программа - автозвонилка, которая бы постоянно звонила автоматически. Каждый может использовать её как хочет, но у меня отдельное применение.
Мне нужно было: 1. Дозвониться до определенного номера. 2. По происшествии некоторого времени телефон должен был сброситься. 3. Через некоторое время должен повторить эту операцию.
п1. у меня получился без проблем.
п2. “duration” т.е. продолжительность звонка я не смог прикрутить.
п3. цикл while сделал
вот 2 кода:
1-й звонит, через 18 секунд сбрасывает трубку. Что плохо он автоматом сбрасывает, т.е. продолжительность звонка не указывается.
2-й звонит, сбрасывает тогда, когда нужно. Но интервал между операциями не указывается, автоматом. Но когда вызываемый абонент занят, то питон просто-напросто зависает. Приходиться перезагружать.
Помогите доделать скрипт до такого состояния как в ZM Dialer под WM - http://4pda.info/news/6652/
Хотя бы нужно без gui.
1-й код:
import telephone, e32, appuifw
n=appuifw.query(u"Enter number", "number")
while 1:
try:
telephone.dial(str(n))
e32.ao_sleep(5)
telephone.hang_up()
e32.ao_sleep(15)
except:
pass
import telephone, e32, appuifw
n=appuifw.query(u"Enter number", "number")
duration = appuifw.query(u"duration", "number")
def handle_hang_up(status):
try:
if status[0] == telephone.EStatusConnected:
e32.ao_sleep(float(duration), telephone.hang_up)
except:
pass
telephone.call_state(handle_hang_up)
while 1:
try:
telephone.dial(str(n))
e32.ao_sleep(15)
except:
pass
Офлайн
попробуй это
import telephone, e32, appuifw
number=appuifw.query(u'Enter number','text')
duration=appuifw.query(u'Duration','time')/60
interval=appuifw.query(u'Interval','time')/60
def handle_call_state(state):
if state[0]==telephone.EStatusConnected:
e32.ao_sleep(duration,telephone.hang_up)
elif state[0]==telephone.EStatusIdle:
e32.ao_sleep(interval)
telephone.dial(number)
telephone.call_state(handle_call_state)
telephone.dial(number)
Отредактировано (Июль 5, 2010 15:22:15)
Офлайн
R.Ll.S.h57
Спасибо! Щас потестю.
Офлайн
Отлично! Работает. Как-нибудь надо гуи сделать и в сис'е cделать
Офлайн
Тут одна проблемка есть, когда вызываемый абонент занят/недоступен, то телефон не перезванивает.
Офлайн
R.Ll.S.h57Андрей, очень большая просьба к вам.
попробуй этоimport telephone, e32, appuifw
number=appuifw.query(u'Enter number','text')
duration=appuifw.query(u'Duration','time')/60
interval=appuifw.query(u'Interval','time')/60
def handle_call_state(state):
if state[0]==telephone.EStatusConnected:
e32.ao_sleep(duration,telephone.hang_up)
elif state[0]==telephone.EStatusIdle:
e32.ao_sleep(interval)
telephone.dial(number)
telephone.call_state(handle_call_state)
telephone.dial(number)
Офлайн
Наверно будет лучше отправить по email.
Офлайн