예제 #1
0
 def test_agent_event(self):
     d = dict
     # Events from SF bug 3470641
     # http://sourceforge.net/tracker/
     # ?func=detail&aid=3470641&group_id=76162&atid=546272
     # But we fail to reproduce the bug.
     events = dict \
         ( Login =
             ( self.default_events['Login'][0]
             , Event
                 ( Event              = ('AgentCalled',)
                 , Privilege          = ('agent,all',)
                 , Queue              = ('test',)
                 , AgentCalled        = ('SIP/s394000',)
                 , AgentName          = ('910567',)
                 , ChannelCalling     = ('SIP/multifon-00000006',)
                 , DestinationChannel = ('SIP/s394000-00000007',)
                 , CallerIDNum        = ('394000',)
                 , CallerIDName       = ('Agent',)
                 , Context            = ('from-multifon',)
                 , Extension          = ('7930456789',)
                 , Priority           = ('3',)
                 , Uniqueid           = ('1302010429.6',)
                 , Variable           = ('data1=456789', 'data2=test')
                 )
             )
         )
     self.run_manager(events)
     r = self.manager.login('account', 'geheim')
     self.compare_result(r, events['Login'][0])
     for k in events['Login'][1:]:
         n = self.queue.get()
         self.compare_result(self.events[n], events['Login'][n + 1])
예제 #2
0
 def test_redirect(self):
     d = dict
     events = dict \
         ( Redirect =
             ( Event
                 ( Response  = ('Success',)
                 , Message   = ('Redirect successful',)
                 )
             ,
             )
         )
     self.run_manager(events)
     r = self.manager.redirect \
         ('lcr/556', 'generic', 'Bye', context='attendo')
     self.assertEqual(self.events, [])
     self.compare_result(r, events['Redirect'][0])
예제 #3
0
    def test_command(self):
        d = dict
        events = dict \
            ( Command =
                ( Event
                    ( Response  = ('Follows',)
                    , Privilege = ('Command',)
                    , CONTENT   =
                      """Channel              Location             State   Application(Data)
lcr/556              s@attendoparse:9     Up Read(dtmf,,30,noanswer,,2)    
1 active channel
1 active call
372 calls processed
--END COMMAND--\r
"""
                    )
                ,
                )
            )
        self.run_manager(events)
        r = self.manager.command('core show channels')
        self.assertEqual(self.events, [])
        self.compare_result(r, events['Command'][0])
예제 #4
0
 def test_misc_events(self):
     d = dict
     # Events from SF bug 3470641
     # http://sourceforge.net/tracker/
     # ?func=detail&aid=3470641&group_id=76162&atid=546272
     # But we fail to reproduce the bug.
     events = dict \
         ( Login =
             ( self.default_events['Login'][0]
             , Event
                 ({ 'AppData'    : '0?begin2'
                  , 'Extension'  : 'zap2dahdi'
                  , 'Uniqueid'   : '1325950970.698'
                  , 'Priority'   : '9'
                  , 'Application': 'GotoIf'
                  , 'Context'    : 'macro-dial-one'
                  , 'Privilege'  : 'dialplan,all'
                  , 'Event'      : 'Newexten'
                  , 'Channel'    : 'Local/102@from-queue-a8ca;2'
                 })
             , Event
                 ({ 'Value'     : '2'
                  , 'Variable'  : 'MACRO_DEPTH'
                  , 'Uniqueid'  : '1325950970.698'
                  , 'Privilege' : 'dialplan,all'
                  , 'Event'     : 'VarSet'
                  , 'Channel'   : 'Local/102@from-queue-a8ca;2'
                 })
             , Event
                 ({'Privilege': 'dialplan,all\r\n'
                   'Channel: Local/102@from-queue-a8ca;2\r\n'
                   'Variable: MACRO_DEPTH\r\n'
                   'Value: 2\r\n'
                   'Uniqueid: 1325950970.698\r\n'
                   '\r\n'
                   'Event: Newexten\r\n'
                   'Privilege: dialplan,all\r\n'
                   'Channel: Local/102@from-queue-a8ca;2\r\n'
                   'Context: macro-dial-one\r\n'
                   'Extension: zap2dahdi\r\n'
                   'Priority: 9\r\n'
                   'Application: GotoIf\r\n'
                   'AppData: 0?begin2\r\n'
                   'Uniqueid: 1325950970.698\r\n'
                   '\r\n'
                   'Event: VarSet\r\n'
                   'Privilege: dialplan,all\r\n'
                   'Channel: Local/102@from-queue-a8ca;2\r\n'
                   'Variable: MACRO_DEPTH\r\n'
                   'Value: 2\r\n'
                   'Uniqueid: 1325950970.698\r\n'
                   '\r\n'
                   'Event: Newexten\r\n'
                   'Privilege: dialplan,all\r\n'
                   'Channel: Local/102@from-queue-a8ca;2\r\n'
                   'Context: macro-dial-one\r\n'
                   'Extension: zap2dahdi\r\n'
                   'Priority: 10\r\n'
                   'Application: Set\r\n'
                   'AppData: THISDIAL=SIP/102\r\n'
                   'Uniqueid: 1325950970.698\r\n'
                   '\r\n'
                   'Event: VarSet\r\n'
                   'Privilege: dialplan,all\r\n'
                   'Channel: Local/102@from-queue-a8ca;2\r\n'
                   'Variable: THISDIAL\r\n'
                   'Value: SIP/102\r\n'
                   'Uniqueid: 1325950970.698\r\n'
                   '\r\n'
                   'Event: VarSet\r\n'
                   'Privilege: dialplan,all\r\n'
                   'Channel: Local/102@from-queue-a8ca;2\r\n'
                   'Variable: MACRO_DEPTH\r\n'
                   'Value: 2\r\n'
                   'Uniqueid: 1325950970.698\r\n'
                   '\r\n'
                   'Event: Newexten\r\n'
                   'Privilege: dialplan,all\r\n'
                   'Channel: Local/102@from-queue-a8ca;2\r\n'
                   'Context: macro-dial-one\r\n'
                   'Extension: zap2dahdi\r\n'
                   'Priority: 11\r\n'
                   'Application: Return\r\n'
                   'AppData: \r\n'
                   'Uniqueid: 1325950970.698\r\n'
                   '\r\n'
                   'Event: VarSet\r\n'
                   'Privilege: dialplan,all\r\n'
                   'Channel: Local/102@from-queue-a8ca;2\r\n'
                   'Variable: GOSUB_RETVAL\r\n'
                   'Value: \r\n'
                   'Uniqueid: 1325950970.698\r\n'
                   '\r\n'
                   'Event: VarSet\r\n'
                   'Privilege: dialplan,all\r\n'
                   'Channel: Local/102@from-queue-a8ca;2\r\n'
                   'Variable: MACRO_DEPTH\r\n'
                   'Value: 2\r\n'
                   'Uniqueid: 1325950970.698\r\n'
                   '\r\n'
                   'Event: Newexten\r\n'
                   'Privilege: dialplan,all\r\n'
                   'Channel: Local/102@from-queue-a8ca;2\r\n'
                   'Context: macro-dial-one\r\n'
                   'Extension: dstring\r\n'
                   'Priority: 9\r\n'
                   'Application: Set\r\n'
                   'AppData: DSTRING=SIP/102&\r\n'
                   'Uniqueid: 1325950970.698\r\n'
                   '\r\n'
                   'Event: VarSet\r\n'
                   'Privilege: dialplan,all\r\n'
                   'Channel: Local/102@from-queue-a8ca;2\r\n'
                   'Variable: DSTRING\r\n'
                   'Value: SIP/102&\r\n'
                   'Uniqueid: 1325950970.698\r\n'
                   '\r\n'
                   'Event: VarSet\r\n'
                   'Privilege: dialplan,all\r\n'
                   'Channel: Local/102@from-queue-a8ca;2\r\n'
                   'Variable: MACRO_DEPTH\r\n'
                   'Value: 2\r\n'
                   'Uniqueid: 1325950970.698\r\n'
                   '\r\n'
                   'Event: Newexten\r\n'
                   'Privilege: dialplan,all\r\n'
                   'Channel: Local/102@from-queue-a8ca;2\r\n'
                   'Context: macro-dial-one\r\n'
                   'Extension: dstring\r\n'
                   'Priority: 10\r\n'
                   'Application: Set\r\n'
                   'AppData: ITER=2\r\n'
                   'Uniqueid: 1325950970.698\r\n'
                   '\r\n'
                   'Event: Newexten\r\n'
                   'Privilege: dialplan,all\r\n'
                   'Channel: Local/101@from-queue-4406;2\r\n'
                   'Context: macro-dial-one\r\n'
                   'Extension: zap2dahdi\r\n'
                   'Priority: 6\r\n'
                   'Application: ExecIf\r\n'
                   'AppData: 0?Set(THISPART2=DAHDI/101)\r\n'
                   'Uniqueid: 1325950970.696\r\n'
                   '\r\n'
                   'Event: VarSet\r\n'
                   'Privilege: dialplan,all\r\n'
                   'Channel: Local/102@from-queue-a8ca;2\r\n'
                   'Variable: ITER\r\n'
                   'Value: 2\r\n'
                   'Uniqueid: 1325950970.698\r\n'
                   '\r\n'
                   'Event: VarSet\r\n'
                   'Privilege: dialplan,all\r\n'
                   'Channel: Local/102@from-queue-a8ca;2\r\n'
                   'Variable: MACRO_DEPTH\r\n'
                   'Value: 2\r\n'
                   'Uniqueid: 1325950970.698\r\n'
                   '\r\n'
                   'Event: VarSet\r\n'
                   'Privilege: dialplan,all\r\n'
                   'Channel: Local/101@from-queue-4406;2\r\n'
                   'Variable: MACRO_DEPTH\r\n'
                   'Value: 2\r\n'
                   'Uniqueid: 1325950970.696\r\n'
                   '\r\n'
                   'Event: Newexten\r\n'
                   'Privilege: dialplan,all\r\n'
                   'Channel: Local/101@from-queue-4406;2\r\n'
                   'Context: macro-dial-one\r\n'
                   'Extension: zap2dahdi\r\n'
                   'Priority: 7\r\n'
                   'Application: Set\r\n'
                   'AppData: NEWDIAL=SIP/101&\r\n'
                   'Uniqueid: 1325950970.696\r\n'
                   '\r\n'
                   'Event: VarSet\r\n'
                   'Privilege: dialplan,all\r\n'
                   'Channel: Local/101@from-queue-4406;2\r\n'
                   'Variable: NEWDIAL\r\n'
                   'Value: SIP/101&\r\n'
                   'Uniqueid: 1325950970.696\r\n'
                   '\r\n'
                   'Event: VarSet\r\n'
                   'Privilege: dialplan,all\r\n'
                   'Channel: Local/101@from-queue-4406;2\r\n'
                   'Variable: MACRO_DEPTH\r\n'
                   'Value: 2\r\n'
                   'Uniqueid: 1325950970.696\r\n'
                   '\r\n'
                   'Event: Newexten\r\n'
                   'Privilege: dialplan,all\r\n'
                   'Channel: Local/101@from-queue-4406;2\r\n'
                   'Context: macro-dial-one\r\n'
                   'Extension: zap2dahdi\r\n'
                   'Priority: 8\r\n'
                   'Application: Set\r\n'
                   'AppData: ITER2=2\r\n'
                   'Uniqueid: 1325950970.696\r\n'
                   '\r\n'
                   'Event: VarSet\r\n'
                   'Privilege: dialplan,all\r\n'
                   'Channel: Local/101@from-queue-4406;2\r\n'
                   'Variable: ITER2\r\n'
                   'Value: 2\r\n'
                   'Uniqueid: 1325950970.696\r\n'
                   '\r\n'
                   'Event: VarSet\r\n'
                   'Privilege: dialplan,all\r\n'
                   'Channel: Local/101@from-queue-4406;2\r\n'
                   'Variable: MACRO_DEPTH\r\n'
                   'Value: 2\r\n'
                   'Uniqueid: 1325950970.696\r\n'
                   '\r\n'
                   'Event: Newexten\r\n'
                   'Privilege: dialplan,all\r\n'
                   'Channel: Local/101@from-queue-4406;2\r\n'
                   'Context: macro-dial-one\r\n'
                   'Extension: zap2dahdi\r\n'
                   'Priority: 9\r\n'
                   'Application: GotoIf\r\n'
                   'AppData: 0?begin2\r\n'
                   'Uniqueid: 1325950970.696\r\n'
                   '\r\n'
                   'Event: VarSet\r\n'
                   'Privilege: dialplan,all\r\n'
                   'Channel: Local/101@from-queue-4406;2\r\n'
                   'Variable: MACRO_DEPTH\r\n'
                   'Value: 2\r\n'
                   'Uniqueid: 1325950970.696\r\n'
                   '\r\n'
                   'Event: Newexten\r\n'
                   'Privilege: dialplan,all\r\n'
                   'Channel: Local/101@from-queue-4406;2\r\n'
                   'Context: macro-dial-one\r\n'
                   'Extension: zap2dahdi\r\n'
                   'Priority: 10\r\n'
                   'Application: Set\r\n'
                   'AppData: THISDIAL=SIP/101\r\n'
                   'Uniqueid: 1325950970.696\r\n'
                   '\r\n'
                   'Event: VarSet\r\n'
                   'Privilege: dialplan,all\r\n'
                   'Channel: Local/101@from-queue-4406;2\r\n'
                   'Variable: THISDIAL\r\n'
                   'Value: SIP/101\r\n'
                   'Uniqueid: 1325950970.696\r\n'
                   '\r\n'
                   'Event: VarSet\r\n'
                   'Privilege: dialplan,all\r\n'
                   'Channel: Local/101@from-queue-4406;2'
                 , 'Variable': 'MACRO_DEPTH'
                 , 'Event': 'VarSet'
                 , 'Value': '2'
                 , 'Uniqueid': '1325950970.696'
                })
             )
         )
     self.run_manager(events)
     r = self.manager.login('account', 'geheim')
     self.compare_result(r, events['Login'][0])
     evnames = []
     for s in events['Login'][3]['Privilege'].split('\r\n'):
         if s.startswith('Event:'):
             evnames.append(s.split(':')[1].strip())
     for k in xrange(30):
         n = self.queue.get()
         e = self.events[n]
         if n < 2:
             self.compare_result(e, events['Login'][n + 1])
         elif n == 2:
             self.assertEqual(e['Event'], 'VarSet')
         else:
             self.assertEqual(e['Event'], evnames[n - 3])
     self.assertEqual(len(self.events), 30)
예제 #5
0
 def test_originate(self):
     d = dict
     events = dict \
         ( Originate =
             ( Event
                 ( Response  = ('Success',)
                 , Message   = ('Originate successfully queued',)
                 )
             , Event
                 ( Event            = ('Newchannel',)
                 , Privilege        = ('call,all',)
                 , Channel          = ('lcr/557',)
                 , ChannelState     = ('1',)
                 , ChannelStateDesc = ('Rsrvd',)
                 , CallerIDNum      = ('',)
                 , CallerIDName     = ('',)
                 , AccountCode      = ('',)
                 , Exten            = ('',)
                 , Context          = ('',)
                 , Uniqueid         = ('1332366541.558',)
                 )
             , Event
                 ( Event            = ('NewAccountCode',)
                 , Privilege        = ('call,all',)
                 , Channel          = ('lcr/557',)
                 , Uniqueid         = ('1332366541.558',)
                 , AccountCode      = ('4019946397',)
                 , OldAccountCode   = ('',)
                 )
             , Event
                 ({ 'Event'           : ('NewCallerid',)
                  , 'Privilege'       : ('call,all',)
                  , 'Channel'         : ('lcr/557',)
                  , 'CallerIDNum'     : ('',)
                  , 'CallerIDName'    : ('',)
                  , 'Uniqueid'        : ('1332366541.558',)
                  , 'CID-CallingPres' :
                     ('0 (Presentation Allowed, Not Screened)',)
                 })
             , Event
                 ( Event            = ('Newchannel',)
                 , Privilege        = ('call,all',)
                 , Channel          = ('lcr/558',)
                 , ChannelState     = ('1',)
                 , ChannelStateDesc = ('Rsrvd',)
                 , CallerIDNum      = ('',)
                 , CallerIDName     = ('',)
                 , AccountCode      = ('',)
                 , Exten            = ('',)
                 , Context          = ('',)
                 , Uniqueid         = ('1332366541.559',)
                 )
             , Event
                 ( Event            = ('Newstate',)
                 , Privilege        = ('call,all',)
                 , Channel          = ('lcr/558',)
                 , ChannelState     = ('4',)
                 , ChannelStateDesc = ('Ring',)
                 , CallerIDNum      = ('0000000000',)
                 , CallerIDName     = ('',)
                 , Uniqueid         = ('1332366541.559',)
                 )
             , Event
                 ( Event            = ('Newstate',)
                 , Privilege        = ('call,all',)
                 , Channel          = ('lcr/558',)
                 , ChannelState     = ('7',)
                 , ChannelStateDesc = ('Busy',)
                 , CallerIDNum      = ('0000000000',)
                 , CallerIDName     = ('',)
                 , Uniqueid         = ('1332366541.559',)
                 )
             , Event
                 ({ 'Event'         : ('Hangup',)
                  , 'Privilege'     : ('call,all',)
                  , 'Channel'       : ('lcr/558',)
                  , 'Uniqueid'      : ('1332366541.559',)
                  , 'CallerIDNum'   : ('0000000000',)
                  , 'CallerIDName'  : ('<unknown>',)
                  , 'Cause'         : ('16',)
                  , 'Cause-txt'     : ('Normal Clearing',)
                 })
             , Event
                 ({ 'Event'         : ('Hangup',)
                  , 'Privilege'     : ('call,all',)
                  , 'Channel'       : ('lcr/557',)
                  , 'Uniqueid'      : ('1332366541.558',)
                  , 'CallerIDNum'   : ('<unknown>',)
                  , 'CallerIDName'  : ('<unknown>',)
                  , 'Cause'         : ('17',)
                  , 'Cause-txt'     : ('User busy',)
                 })
             , Event
                 ( Event            = ('OriginateResponse',)
                 , Privilege        = ('call,all',)
                 , Response         = ('Failure',)
                 , Channel          = ('LCR/Ext1/0000000000',)
                 , Context          = ('linecheck',)
                 , Exten            = ('1',)
                 , Reason           = ('1',)
                 , Uniqueid         = ('<null>',)
                 , CallerIDNum      = ('<unknown>',)
                 , CallerIDName     = ('<unknown>',)
                 )
             )
         )
     self.run_manager(events)
     r = self.manager.originate \
         ('LCR/Ext1/0000000000', '1'
         , context   = 'linecheck'
         , priority  = '1'
         , account   = '4019946397'
         , variables = {'CALL_DELAY' : '1', 'SOUND' : 'abandon-all-hope'}
         )
     self.compare_result(r, events['Originate'][0])
     for k in events['Originate'][1:]:
         n = self.queue.get()
         self.compare_result(self.events[n], events['Originate'][n + 1])