Anrufe aus einer Liste.Auf den AB schalten!Anfanger

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

BlackJack hat geschrieben:Und dann ginge auch der einfache ``in``-Test statt einer Schleife.
@Hyperion: Ich glaube er meint ``if call_from in in_file.read()``, oder?

Edit: Meinte er doch nicht :D
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

BlackJack hat geschrieben:@Hyperion: WTF!? Mal abgesehen vom einfacheren Test mit ``in`` klappt das schonmal so nicht weil die Zeilen in der Datei mit einem Zeilenende-Zeichen enden, also nicht gleich einer Telefonnummer ohne dieses sein werden. Und dann ist das Argument von `any()` viel zu umständlich. Eine "list comprehension" statt eines Generatorausdrucks, `readlines()` statt über das Dateiobjekt iterieren, literales `True` und angehängte ``if``-Bedingung statt *vorne* einfach *nur* die Bedingung. Also: ``any(call_from == line.strip() for line in in_file)``
*seufz* Ich sollte dringend ins Bett gehen :oops:
kabu
User
Beiträge: 10
Registriert: Dienstag 12. Januar 2010, 10:54

Code: Alles auswählen

import capisuite,cs_helpers
my_path="/root/capisuite-examples/"

def callIncoming(call,service,call_from,call_to):
        try:
                if (call_to=="meineMSN"):
			datei = open("/etc/capisuite/banned_caller.conf", "r")
			x = datei.read().split()
			print "es ruft", call_from
			print x #zu testen was drinnesteht.
			for zeile in x:
				if zeile == str(call_from):
#	                        	filename=cs_helpers.uniqueName(my_path,"voice","la")
#                        		capisuite.connect_voice(call,1)
#					capisuite.audio_send(call,my_path+"announce.la")
#					capisuite.audio_send(call,my_path+"beep.la")
#                        		capisuite.audio_receive(call,filename,20,3)
#                        		capisuite.disconnect(call)
					print "treffer"
					break
				else:
					print "nix"
			datei.close()
		else:
                        capisuite.reject(call,1)
        except capisuite.CallGoneError:
                capisuite.disconnect(call)
geht aber ich kriege
fritzbox:~# capisuite -c /root/capisuite.conf
es ruftxxxxxxxxx
['12', '67', '13', '67', '76', '67553434634646346346', '67553434634646346346']
nix
nix
nix
nix
nix
nix
nix
Speicherzugriffsfehler
fritzbox:~# pidof capisuite
fritzbox:~#
danach ist capiuite aus.

wie verhindert mann den Speicherzugriffsfehler und woher kommt er?
kabu
User
Beiträge: 10
Registriert: Dienstag 12. Januar 2010, 10:54

scheit aber wenn ich das normal über das system laufen lasse zu gehen.

Ich probier das mal so ein Zeit lang und fülle langsam mal die blacklist.

Code: Alles auswählen

import capisuite,cs_helpers
my_path="/root/capisuite-examples/"

def callIncoming(call,service,call_from,call_to):
        try:
                if (call_to=="123456"): #<Hier die MSN (eigende nummer) eintragen
			datei = open("/etc/capisuite/banned_caller.conf", "r")
			x = datei.read().split()
#			print "es ruft", call_from
			print x #zu testen was drinnesteht.
			for zeile in x:
				if zeile == str(call_from):
	                        	filename=cs_helpers.uniqueName(my_path,"voice","la")
                        		capisuite.connect_voice(call,1)
#					capisuite.audio_send(call,my_path+"announce.la")
					capisuite.audio_send(call,my_path+"beep.la")
                        		capisuite.audio_receive(call,filename,20,3)
                        		capisuite.disconnect(call)
					break
			datei.close()
		else:
                        capisuite.reject(call,1)
        except capisuite.CallGoneError:
               capisuite.disconnect(call)
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

BlackJack hat geschrieben:Mir stellt sich irgendwie die Frage, warum Du überhaupt eine Zahl verwendest. Du könntest die Telefonnummer auch gleich als Zeichenkette schreiben, denn letztendlich sind Telefonnummern auch keine Zahlen.
Insbesondere, da bei Telefonnummern fuehrende Nullen wichtig sind.
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Antworten