iro/anbieter/sipgate.py
author Sandro Knauß <knauss@netzguerilla.net>
Wed, 21 Mar 2012 19:41:55 +0100
branchdevel
changeset 239 4cf5e664c847
parent 129 d6704178a18f
permissions -rw-r--r--
adding tests task: test for error chaining config: test for init function
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     1
# -*- coding: utf-8 -*-
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     2
#Copyright (C) 2009  Sandro Knauß <bugs@sandroknauss.de>
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     3
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     4
#This program is free software; you can redistribute it and/or modify it under the terms
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     5
#of the GNU General Public License as published by the Free Software Foundation;
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     6
#either version 3 of the License, or any later version.
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     7
#This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     8
#without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     9
#See the GNU General Public License for more details.
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    10
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    11
#You should have received a copy of the GNU General Public License
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    12
#along with this program; if not, see <http://www.gnu.org/licenses/>.
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    13
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    14
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    15
from anbieter import anbieter
129
d6704178a18f renaming NotATelNumber -> InvalidTel
Sandro Knauß <knauss@netzguerilla.net>
parents: 64
diff changeset
    16
from telnumber import telnumber, InvalidTel
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    17
import ConfigParser
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    18
import xmlrpclib
23
0180b538ed74 logging->logger wg. multiprocessing
Sandro Knauß <knauss@netzguerilla.net>
parents: 20
diff changeset
    19
import logging
0180b538ed74 logging->logger wg. multiprocessing
Sandro Knauß <knauss@netzguerilla.net>
parents: 20
diff changeset
    20
logger=logging.getLogger("sipgate")
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    21
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    22
class NoValidStatusCode(Exception):
64
7d4ddab659ad sipgate:
Sandro Knauß <knauss@netzguerilla.net>
parents: 59
diff changeset
    23
     def __init__(self, value):
7d4ddab659ad sipgate:
Sandro Knauß <knauss@netzguerilla.net>
parents: 59
diff changeset
    24
         self.value = value
7d4ddab659ad sipgate:
Sandro Knauß <knauss@netzguerilla.net>
parents: 59
diff changeset
    25
     
7d4ddab659ad sipgate:
Sandro Knauß <knauss@netzguerilla.net>
parents: 59
diff changeset
    26
     def __str__(self):
7d4ddab659ad sipgate:
Sandro Knauß <knauss@netzguerilla.net>
parents: 59
diff changeset
    27
         return repr(self.value)
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    28
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    29
class sipgate(anbieter):
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    30
    """
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    31
        s. auch http://www.tuxad.com/sipgate.html
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    32
        und http://lists.sipgate.net/pipermail/sipgate-developers/2007-September/000016.html
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    33
    """
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    34
    section="sipgate"
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    35
    url="https://%s:%s@samurai.sipgate.net/RPC2"
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    36
    def __init__(self,user="",password=""):
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    37
        self.user=user
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    38
        self.password=password
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    39
37
6e5bd561ddd0 rumgewurstel mit filenames
Sandro Knauß <knauss@netzguerilla.net>
parents: 36
diff changeset
    40
    def read_basic_config(self,filenames):
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    41
        """Read basic options from the config file"""
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    42
        cp = ConfigParser.ConfigParser()
37
6e5bd561ddd0 rumgewurstel mit filenames
Sandro Knauß <knauss@netzguerilla.net>
parents: 36
diff changeset
    43
        cp.read(filenames)
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    44
        self.user=cp.get(self.section, 'user')
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    45
        self.password=cp.get(self.section, 'password')
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    46
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    47
    def sendSMS(self,sms,recipients):
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    48
        """send SMS with $sms to $recipients"""
30
5253631a8dd3 sms via sipgate working
Sandro Knauß <knauss@netzguerilla.net>
parents: 23
diff changeset
    49
        logger.debug('sipgate.sendSMS(%s,%s)'%(sms.getContent(),  str(recipients)))
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    50
        args={
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    51
                "TOS" : "text",
30
5253631a8dd3 sms via sipgate working
Sandro Knauß <knauss@netzguerilla.net>
parents: 23
diff changeset
    52
                "Content" : sms.getContent()
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    53
                }
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    54
        self.__send(args,recipients)
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    55
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    56
    def sendFAX(self,fax,recipients):
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    57
        """send the PDF file $fax  to $recipients"""
23
0180b538ed74 logging->logger wg. multiprocessing
Sandro Knauß <knauss@netzguerilla.net>
parents: 20
diff changeset
    58
        logger.debug('sipgate.sendFAX(%s,%s)'%(fax,  str(recipients)))
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    59
        args={
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    60
                "TOS" : "fax",
64
7d4ddab659ad sipgate:
Sandro Knauß <knauss@netzguerilla.net>
parents: 59
diff changeset
    61
                "Content" : xmlrpclib.Binary(fax.getAttachment(0)),
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    62
                }
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    63
        self.__send(args,recipients)
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    64
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    65
    def __connect(self):
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    66
        """connect to sipgate XMLRPC Server"""
36
178fd966423d ein bischen logging hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents: 32
diff changeset
    67
        logger.debug("sipgate.__connect()-"+self.url%(self.user,"XXXXXXXX"))
64
7d4ddab659ad sipgate:
Sandro Knauß <knauss@netzguerilla.net>
parents: 59
diff changeset
    68
        
7d4ddab659ad sipgate:
Sandro Knauß <knauss@netzguerilla.net>
parents: 59
diff changeset
    69
        self.serv=xmlrpclib.ServerProxy(self.url%(self.user,self.password)) 
7d4ddab659ad sipgate:
Sandro Knauß <knauss@netzguerilla.net>
parents: 59
diff changeset
    70
        self.samurai=self.serv.samurai
7d4ddab659ad sipgate:
Sandro Knauß <knauss@netzguerilla.net>
parents: 59
diff changeset
    71
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    72
        args_identify = {
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    73
                "ClientName"    : "anbieter.py",
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    74
                "ClientVersion" : "V1.0",
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    75
                "ClientVendor"  : "Sandro Knauss"
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    76
                }
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    77
        self.__send_method(self.samurai.ClientIdentify, args_identify)
64
7d4ddab659ad sipgate:
Sandro Knauß <knauss@netzguerilla.net>
parents: 59
diff changeset
    78
        return self.serv
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    79
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    80
    def __send_method(self, func, args=None):
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    81
        """execute $func and test weather if the func  ran successfully or not"""
64
7d4ddab659ad sipgate:
Sandro Knauß <knauss@netzguerilla.net>
parents: 59
diff changeset
    82
        logger.debug("sipgate.__send_method(func,%s)"%( args))
9
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 0
diff changeset
    83
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    84
        if args==None:
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    85
            xmlrpc_result = func()
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    86
        else:
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    87
            xmlrpc_result = func(args)
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    88
        if xmlrpc_result['StatusCode'] != 200:
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    89
            raise NoValidStatusCode("There was an error during identification to the server! %d %s"% (xmlrpc_result['StatusCode'], xmlrpc_result['StatusString']))
64
7d4ddab659ad sipgate:
Sandro Knauß <knauss@netzguerilla.net>
parents: 59
diff changeset
    90
        logger.debug("sipgate.__send_method(..):ok"); 
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    91
        return xmlrpc_result
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    92
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    93
    def __send(self,args,recipients):
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    94
        """main sending method - sending the args to $recipients"""
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    95
        sended=[]
9
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 0
diff changeset
    96
64
7d4ddab659ad sipgate:
Sandro Knauß <knauss@netzguerilla.net>
parents: 59
diff changeset
    97
        serv=self.__connect()
7d4ddab659ad sipgate:
Sandro Knauß <knauss@netzguerilla.net>
parents: 59
diff changeset
    98
        logger.debug('sipgate.__send(%s,%s)'%(args,  recipients))
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    99
        for recipient in recipients:
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   100
            try:
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   101
                tel = telnumber(recipient)
30
5253631a8dd3 sms via sipgate working
Sandro Knauß <knauss@netzguerilla.net>
parents: 23
diff changeset
   102
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   103
                if tel in sended:                                                                           #only send message once per recipient
30
5253631a8dd3 sms via sipgate working
Sandro Knauß <knauss@netzguerilla.net>
parents: 23
diff changeset
   104
                    continue
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   105
                sended.append(tel)
36
178fd966423d ein bischen logging hinzugefügt
Sandro Knauß <knauss@netzguerilla.net>
parents: 32
diff changeset
   106
				
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   107
                args["RemoteUri"]="sip:%s%s@sipgate.net"%(tel.land,tel.number)
64
7d4ddab659ad sipgate:
Sandro Knauß <knauss@netzguerilla.net>
parents: 59
diff changeset
   108
                self.__send_method(serv.samurai.SessionInitiate, args)
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   109
                self.updateStatus(arranged=recipient)
32
935f9a4da503 sipgate kleine änderungen
Sandro Knauß <knauss@netzguerilla.net>
parents: 30
diff changeset
   110
            
129
d6704178a18f renaming NotATelNumber -> InvalidTel
Sandro Knauß <knauss@netzguerilla.net>
parents: 64
diff changeset
   111
            except (InvalidTel, NoValidStatusCode):
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   112
                self.updateStatus(failed=recipient)
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   113
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   114
        self.__disconnect()
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   115
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   116
    def updateStatus(self, arranged=None, failed=None):
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   117
        """is a function that is called, if a new SMS/FAX was send
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   118
        -arranged is non None, if SMS/FAX was sended successfully
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   119
        -failed is non None, if SMS/FAX sending failed
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   120
        the content will be the recipent"""
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   121
        pass
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   122
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   123
    def BalanceGet(self):
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   124
        """get the balance of sipgate"""
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   125
        self.__connect()
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   126
        ret = self.__send_method(self.samurai.BalanceGet )
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   127
        self.__disconnect()
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   128
        return ret['CurrentBalance']
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   129
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   130
    def getNewMessages(self):
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   131
        """get new messages from inbox"""
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   132
        self.__connect()
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   133
        tmp = self.__send_method(self.samurai.UmSummaryGet)
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   134
        self.__disconnect()
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   135
        tmp=tmp['UmSummary']
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   136
        ret={}
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   137
        for entry in tmp:
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   138
            ret[entry['TOS']]={'read':entry["Read"],'unread':entry["Unread"]}
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   139
        return ret
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   140
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   141
    def getRecommendedInterval(self,methods):
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   142
        """how often you can call one $methods"""
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   143
        self.__connect()
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   144
        args = {"MethodList" : methods }
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   145
        tmp = self.__send_method(self.samurai.RecommendedIntervalGet, args)
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   146
        self. __disconnect()
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   147
        ret={}
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   148
        for entry in tmp['IntervalList']:
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   149
            ret[entry['MethodName']]=entry['RecommendedInterval']
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   150
        return ret
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   151
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   152
    def __disconnect(self):
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   153
        """disconnect xmlrpc client"""
64
7d4ddab659ad sipgate:
Sandro Knauß <knauss@netzguerilla.net>
parents: 59
diff changeset
   154
        logger.debug('sipgate.__disconnect()')
7d4ddab659ad sipgate:
Sandro Knauß <knauss@netzguerilla.net>
parents: 59
diff changeset
   155
        self.samurai=None
7d4ddab659ad sipgate:
Sandro Knauß <knauss@netzguerilla.net>
parents: 59
diff changeset
   156
        self.serv=None
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   157
        self.xmlrpc=None