예제 #1
0
 def incoming_call(self, prm):
     call = Call(self.acc, call_id=prm.callId)
     call_prm = pj.CallOpParam()
     # Ringing State
     call_prm.statusCode = pj.PJSIP_SC_RINGING
     call.answer(call_prm)
     # Set uri
     call.uri = call.getInfo().remoteUri
     iid = call.uri.split(':')[1].split('@')[0]
     if msg.askquestion('Incoming Call',
                        'Accept call from ' + iid + ' ?',
                        default=msg.YES):
         # If not exist current buddy, then create
         if iid not in self.buddy_list:
             # Initialize buddy
             bud = Buddy(self, iid)
             # Initialize configuration of buddy
             bud_cfg = pj.BuddyConfig()
             bud_cfg.uri = 'sip:' + iid + '@' + self.domain
             # Create buddy
             bud.cfg = bud_cfg
             bud.create(self.acc, bud.cfg)
             bud.subscribePresence(True)
             # Push into buddy_list
             self.buddy_list[iid] = bud
             self.update_buddy(bud)
         # If not exist current chat dialog, then create
         if iid not in self.chat_list:
             self.chat_list[iid] = Chat(self.acc, self.buddy_list[iid],
                                        self)
         # Inform the corresponding chat
         self.chat_list[iid].receive_call(call)
     else:
         call.hangup(call_prm)
예제 #2
0
    def _add_buddy(self, event):
        iid = self.buddy.get()

        if iid not in self.buddy_list:
            # Initialize buddy
            bud = Buddy(self, iid)
            # Initialize configuration of buddy
            bud_cfg = pj.BuddyConfig()
            bud_cfg.uri = 'sip:' + iid + '@' + self.domain
            # Create buddy
            bud.cfg = bud_cfg
            bud.create(self.acc, bud.cfg)
            bud.subscribePresence(True)
            # Push into buddy_list
            self.buddy_list[iid] = bud
            self.update_buddy(bud)

        self.buddy.delete(0, 'end')