当前位置: 首页>>代码示例>>Python>>正文


Python Helper.usrlocGetContacts方法代码示例

本文整理汇总了Python中Helper.usrlocGetContacts方法的典型用法代码示例。如果您正苦于以下问题:Python Helper.usrlocGetContacts方法的具体用法?Python Helper.usrlocGetContacts怎么用?Python Helper.usrlocGetContacts使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Helper的用法示例。


在下文中一共展示了Helper.usrlocGetContacts方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: createReply

# 需要导入模块: import Helper [as 别名]
# 或者: from Helper import usrlocGetContacts [as 别名]

#.........这里部分代码省略.........
            raise SCException("Transaction", "createReply", "transaction contains no request for reply creation")
        reply = SipReply()
        reply.code = int(code)
        reply.reason = reason
        reply.request = req
        reply.protocol = copy.copy(req.protocol)
        reply.version = copy.copy(req.version)
        # copy only the mandatory HFHs
        cp_hfh = Helper.get_rpl_hfh_dict(code)
        if cp_hfh is None:
            Log.logDebug("Transaction.createReply(): code not in reply HFH table, looking up generic code", 5)
            code_generic = (code / 100) * 100
            cp_hfh = Helper.get_rpl_hfh_dict(code_generic)
        if cp_hfh is None:
            Log.logDebug("Transaction.createReply(): unable to find generic reply in HFH table, copying all HFH", 2)
            reply.headerFields = copy.copy(req.headerFields)
            reply.parsedHeader = copy.deepcopy(req.parsedHeader)
        else:
            for i in cp_hfh:
                if req.hasHeaderField(i):
                    reply.setHeaderValue(i, copy.copy(req.getHeaderValue(i)))
                else:
                    Log.logDebug("Transaction.createReply(): request missing mandatory HFH: " + str(i), 2)
                i_m = Helper.getMappedHFH(i)
                if i_m is None:
                    Log.logDebug("Transaction.createReply(): unable to match HFH: " + str(i), 3)
                    i_m = i
                if req.hasParsedHeaderField(i_m):
                    reply.setParsedHeaderValue(i_m, copy.deepcopy(req.getParsedHeaderValue(i_m)))
                    if i == "Via":
                        via = reply.getParsedHeaderValue("Via")
                        regen = False
                        if via.rport is not None:
                            via.rport = req.event.srcAddress[1]
                            regen = True
                        if via.received is not None:
                            via.received = req.event.srcAddress[0]
                            regen = True
                        if regen:
                            reply.setHeaderValue("Via", via.create())
                else:
                    Log.logDebug("Transaction.createReply(): request missing mandatory parsed HFH: " + str(i), 2)
        if code / 100 <= 2 and req.hasParsedHeaderField("Record-Route"):
            rr = copy.deepcopy(req.getParsedHeaderValue("Record-Route"))
            reply.setParsedHeaderValue("Record-Route", rr)
            reply.setHeaderValue("Record-Route", rr.create())
        if code / 100 == 2 and req.method == "INVITE":
            if self.dialog is not None:
                con = self.dialog.getLocalContact()
            else:
                con = Helper.createClassInstance("Contact")
                con.uri.protocol = "sip"
                con.uri.username = Config.SC_USER_NAME
                con.uri.host = Config.LOCAL_IP
                con.uri.port = Config.LOCAL_PORT
            reply.setParsedHeaderValue("Contact", con)
            reply.setHeaderValue("Contact", con.create())
            reply.body = Helper.createDummyBody()
        elif code / 100 == 2 and req.method == "REGISTER":
            reply.body = []
            if req.hasParsedHeaderField("Contact"):
                reply.setParsedHeaderValue("Contact", copy.deepcopy(req.getParsedHeaderValue("Contact")))
                touri = req.getParsedHeaderValue("To").uri
                co = reply.getParsedHeaderValue("Contact")
                cco = co
                while cco is not None:
                    if cco.expires is None:
                        if req.hasParsedHeaderField("Expires"):
                            cco.expires = req.getParsedHeaderValue("Expires").seconds
                        else:
                            cco.expires = int(Config.DEFAULT_EXPIRES)
                    cco = cco.next
                Helper.usrlocAddContact(touri.create(), co)
                reply.setHeaderValue("Contact", co.create())
            else:
                if req.hasHeaderField("Contact"):
                    Log.logDebug("Transaction.createReply(): missing parsed Contact using raw value", 3)
                    reply.setHeaderValue("Contact", req.getHeaderValue("Contact"))
                else:
                    co = Helper.usrlocGetContacts(req.getParsedHeaderValue("To").uri)
                    if co is not None:
                        reply.setParsedHeaderValue("Contact", co)
                        reply.setHeaderValue("Contact", co.create())
        else:
            con = Helper.createClassInstance("Contact")
            con.uri.protocol = "sip"
            con.uri.username = Config.SC_USER_NAME
            con.uri.host = Config.LOCAL_IP
            con.uri.port = Config.LOCAL_PORT
            con.uri.params = ["transport=UDP"]
            reply.setParsedHeaderValue("Contact", con)
            reply.setHeaderValue("Contact", con.create())
            reply.body = []
        cl = Helper.createClassInstance("Contentlength")
        cl.length = Helper.calculateBodyLength(reply.body)
        reply.setHeaderValue("Content-Length", cl.create())
        if createEvent:
            reply.createEvent()
            reply.setEventAddresses(req.event.dstAddress, req.getReplyAddress())
        return reply
开发者ID:ctaloi,项目名称:sftf,代码行数:104,代码来源:Transaction.py


注:本文中的Helper.usrlocGetContacts方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。