#
# Autogenerated by Thrift Compiler (0.13.0)
#
# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
#
#  options string: py
#

from thrift.Thrift import TType, TMessageType, TFrozenDict, TException, TApplicationException
from thrift.protocol.TProtocol import TProtocolException
from thrift.TRecursive import fix_spec

import sys
from line4py.service import TalkService

from thrift.transport import TTransport
all_structs = []


class CallFlowType(object):
    NEW = 1
    PLANET = 2

    _VALUES_TO_NAMES = {
        1: "NEW",
        2: "PLANET",
    }

    _NAMES_TO_VALUES = {
        "NEW": 1,
        "PLANET": 2,
    }


class FreeCallType(object):
    AUDIO = 1
    VIDEO = 2
    FACEPLAY = 3

    _VALUES_TO_NAMES = {
        1: "AUDIO",
        2: "VIDEO",
        3: "FACEPLAY",
    }

    _NAMES_TO_VALUES = {
        "AUDIO": 1,
        "VIDEO": 2,
        "FACEPLAY": 3,
    }


class GroupCallProtocol(object):
    STANDARD = 1
    CONSTELLA = 2

    _VALUES_TO_NAMES = {
        1: "STANDARD",
        2: "CONSTELLA",
    }

    _NAMES_TO_VALUES = {
        "STANDARD": 1,
        "CONSTELLA": 2,
    }


class GroupCallMediaType(object):
    AUDIO = 1
    VIDEO = 2
    LIVE = 3

    _VALUES_TO_NAMES = {
        1: "AUDIO",
        2: "VIDEO",
        3: "LIVE",
    }

    _NAMES_TO_VALUES = {
        "AUDIO": 1,
        "VIDEO": 2,
        "LIVE": 3,
    }


class CallRoute(object):
    """
    Attributes:
     - toMid
     - tunneling
     - commParam
     - fromToken
     - callFlowType
     - voipAddress
     - voipUdpPort
     - voipTcpPort
     - fromZone
     - toZone
     - fakeCall
     - ringbackTone

    """


    def __init__(self, toMid=None, tunneling=None, commParam=None, fromToken=None, callFlowType=None, voipAddress=None, voipUdpPort=None, voipTcpPort=None, fromZone=None, toZone=None, fakeCall=None, ringbackTone=None,):
        self.toMid = toMid
        self.tunneling = tunneling
        self.commParam = commParam
        self.fromToken = fromToken
        self.callFlowType = callFlowType
        self.voipAddress = voipAddress
        self.voipUdpPort = voipUdpPort
        self.voipTcpPort = voipTcpPort
        self.fromZone = fromZone
        self.toZone = toZone
        self.fakeCall = fakeCall
        self.ringbackTone = ringbackTone

    def read(self, iprot):
        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
            iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec])
            return
        iprot.readStructBegin()
        while True:
            (fname, ftype, fid) = iprot.readFieldBegin()
            if ftype == TType.STOP:
                break
            if fid == 10:
                if ftype == TType.STRING:
                    self.toMid = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 11:
                if ftype == TType.STRING:
                    self.tunneling = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 12:
                if ftype == TType.STRING:
                    self.commParam = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 1:
                if ftype == TType.STRING:
                    self.fromToken = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 2:
                if ftype == TType.I32:
                    self.callFlowType = iprot.readI32()
                else:
                    iprot.skip(ftype)
            elif fid == 3:
                if ftype == TType.STRING:
                    self.voipAddress = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 4:
                if ftype == TType.I32:
                    self.voipUdpPort = iprot.readI32()
                else:
                    iprot.skip(ftype)
            elif fid == 5:
                if ftype == TType.I32:
                    self.voipTcpPort = iprot.readI32()
                else:
                    iprot.skip(ftype)
            elif fid == 6:
                if ftype == TType.STRING:
                    self.fromZone = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 7:
                if ftype == TType.STRING:
                    self.toZone = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 8:
                if ftype == TType.BOOL:
                    self.fakeCall = iprot.readBool()
                else:
                    iprot.skip(ftype)
            elif fid == 9:
                if ftype == TType.STRING:
                    self.ringbackTone = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            else:
                iprot.skip(ftype)
            iprot.readFieldEnd()
        iprot.readStructEnd()

    def write(self, oprot):
        if oprot._fast_encode is not None and self.thrift_spec is not None:
            oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec]))
            return
        oprot.writeStructBegin('CallRoute')
        if self.fromToken is not None:
            oprot.writeFieldBegin('fromToken', TType.STRING, 1)
            oprot.writeString(self.fromToken.encode('utf-8') if sys.version_info[0] == 2 else self.fromToken)
            oprot.writeFieldEnd()
        if self.callFlowType is not None:
            oprot.writeFieldBegin('callFlowType', TType.I32, 2)
            oprot.writeI32(self.callFlowType)
            oprot.writeFieldEnd()
        if self.voipAddress is not None:
            oprot.writeFieldBegin('voipAddress', TType.STRING, 3)
            oprot.writeString(self.voipAddress.encode('utf-8') if sys.version_info[0] == 2 else self.voipAddress)
            oprot.writeFieldEnd()
        if self.voipUdpPort is not None:
            oprot.writeFieldBegin('voipUdpPort', TType.I32, 4)
            oprot.writeI32(self.voipUdpPort)
            oprot.writeFieldEnd()
        if self.voipTcpPort is not None:
            oprot.writeFieldBegin('voipTcpPort', TType.I32, 5)
            oprot.writeI32(self.voipTcpPort)
            oprot.writeFieldEnd()
        if self.fromZone is not None:
            oprot.writeFieldBegin('fromZone', TType.STRING, 6)
            oprot.writeString(self.fromZone.encode('utf-8') if sys.version_info[0] == 2 else self.fromZone)
            oprot.writeFieldEnd()
        if self.toZone is not None:
            oprot.writeFieldBegin('toZone', TType.STRING, 7)
            oprot.writeString(self.toZone.encode('utf-8') if sys.version_info[0] == 2 else self.toZone)
            oprot.writeFieldEnd()
        if self.fakeCall is not None:
            oprot.writeFieldBegin('fakeCall', TType.BOOL, 8)
            oprot.writeBool(self.fakeCall)
            oprot.writeFieldEnd()
        if self.ringbackTone is not None:
            oprot.writeFieldBegin('ringbackTone', TType.STRING, 9)
            oprot.writeString(self.ringbackTone.encode('utf-8') if sys.version_info[0] == 2 else self.ringbackTone)
            oprot.writeFieldEnd()
        if self.toMid is not None:
            oprot.writeFieldBegin('toMid', TType.STRING, 10)
            oprot.writeString(self.toMid.encode('utf-8') if sys.version_info[0] == 2 else self.toMid)
            oprot.writeFieldEnd()
        if self.tunneling is not None:
            oprot.writeFieldBegin('tunneling', TType.STRING, 11)
            oprot.writeString(self.tunneling.encode('utf-8') if sys.version_info[0] == 2 else self.tunneling)
            oprot.writeFieldEnd()
        if self.commParam is not None:
            oprot.writeFieldBegin('commParam', TType.STRING, 12)
            oprot.writeString(self.commParam.encode('utf-8') if sys.version_info[0] == 2 else self.commParam)
            oprot.writeFieldEnd()
        oprot.writeFieldStop()
        oprot.writeStructEnd()

    def validate(self):
        return

    def __repr__(self):
        L = ['%s=%r' % (key, value)
             for key, value in self.__dict__.items()]
        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

    def __eq__(self, other):
        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

    def __ne__(self, other):
        return not (self == other)


class GroupCallRoute(object):
    """
    Attributes:
     - voipAddress
     - voipUdpPort
     - voipTcpPort
     - fromZone
     - commParam
     - polarisAddress
     - polarisUdpPort
     - polarisZone
     - orionAddress
     - token
     - cscf
     - mix
     - hostMid
     - capabilities
     - proto

    """


    def __init__(self, voipAddress=None, voipUdpPort=None, voipTcpPort=None, fromZone=None, commParam=None, polarisAddress=None, polarisUdpPort=None, polarisZone=None, orionAddress=None, token=None, cscf=None, mix=None, hostMid=None, capabilities=None, proto=None,):
        self.voipAddress = voipAddress
        self.voipUdpPort = voipUdpPort
        self.voipTcpPort = voipTcpPort
        self.fromZone = fromZone
        self.commParam = commParam
        self.polarisAddress = polarisAddress
        self.polarisUdpPort = polarisUdpPort
        self.polarisZone = polarisZone
        self.orionAddress = orionAddress
        self.token = token
        self.cscf = cscf
        self.mix = mix
        self.hostMid = hostMid
        self.capabilities = capabilities
        self.proto = proto

    def read(self, iprot):
        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
            iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec])
            return
        iprot.readStructBegin()
        while True:
            (fname, ftype, fid) = iprot.readFieldBegin()
            if ftype == TType.STOP:
                break
            if fid == 7:
                if ftype == TType.STRING:
                    self.voipAddress = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 8:
                if ftype == TType.I32:
                    self.voipUdpPort = iprot.readI32()
                else:
                    iprot.skip(ftype)
            elif fid == 9:
                if ftype == TType.I32:
                    self.voipTcpPort = iprot.readI32()
                else:
                    iprot.skip(ftype)
            elif fid == 10:
                if ftype == TType.STRING:
                    self.fromZone = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 11:
                if ftype == TType.STRING:
                    self.commParam = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 12:
                if ftype == TType.STRING:
                    self.polarisAddress = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 13:
                if ftype == TType.I32:
                    self.polarisUdpPort = iprot.readI32()
                else:
                    iprot.skip(ftype)
            elif fid == 14:
                if ftype == TType.STRING:
                    self.polarisZone = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 15:
                if ftype == TType.STRING:
                    self.orionAddress = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 1:
                if ftype == TType.STRING:
                    self.token = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 2:
                if ftype == TType.STRUCT:
                    self.cscf = CallHost()
                    self.cscf.read(iprot)
                else:
                    iprot.skip(ftype)
            elif fid == 3:
                if ftype == TType.STRUCT:
                    self.mix = CallHost()
                    self.mix.read(iprot)
                else:
                    iprot.skip(ftype)
            elif fid == 4:
                if ftype == TType.STRING:
                    self.hostMid = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 5:
                if ftype == TType.LIST:
                    self.capabilities = []
                    (_etype3, _size0) = iprot.readListBegin()
                    for _i4 in range(_size0):
                        _elem5 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                        self.capabilities.append(_elem5)
                    iprot.readListEnd()
                else:
                    iprot.skip(ftype)
            elif fid == 6:
                if ftype == TType.I32:
                    self.proto = iprot.readI32()
                else:
                    iprot.skip(ftype)
            else:
                iprot.skip(ftype)
            iprot.readFieldEnd()
        iprot.readStructEnd()

    def write(self, oprot):
        if oprot._fast_encode is not None and self.thrift_spec is not None:
            oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec]))
            return
        oprot.writeStructBegin('GroupCallRoute')
        if self.token is not None:
            oprot.writeFieldBegin('token', TType.STRING, 1)
            oprot.writeString(self.token.encode('utf-8') if sys.version_info[0] == 2 else self.token)
            oprot.writeFieldEnd()
        if self.cscf is not None:
            oprot.writeFieldBegin('cscf', TType.STRUCT, 2)
            self.cscf.write(oprot)
            oprot.writeFieldEnd()
        if self.mix is not None:
            oprot.writeFieldBegin('mix', TType.STRUCT, 3)
            self.mix.write(oprot)
            oprot.writeFieldEnd()
        if self.hostMid is not None:
            oprot.writeFieldBegin('hostMid', TType.STRING, 4)
            oprot.writeString(self.hostMid.encode('utf-8') if sys.version_info[0] == 2 else self.hostMid)
            oprot.writeFieldEnd()
        if self.capabilities is not None:
            oprot.writeFieldBegin('capabilities', TType.LIST, 5)
            oprot.writeListBegin(TType.STRING, len(self.capabilities))
            for iter6 in self.capabilities:
                oprot.writeString(iter6.encode('utf-8') if sys.version_info[0] == 2 else iter6)
            oprot.writeListEnd()
            oprot.writeFieldEnd()
        if self.proto is not None:
            oprot.writeFieldBegin('proto', TType.I32, 6)
            oprot.writeI32(self.proto)
            oprot.writeFieldEnd()
        if self.voipAddress is not None:
            oprot.writeFieldBegin('voipAddress', TType.STRING, 7)
            oprot.writeString(self.voipAddress.encode('utf-8') if sys.version_info[0] == 2 else self.voipAddress)
            oprot.writeFieldEnd()
        if self.voipUdpPort is not None:
            oprot.writeFieldBegin('voipUdpPort', TType.I32, 8)
            oprot.writeI32(self.voipUdpPort)
            oprot.writeFieldEnd()
        if self.voipTcpPort is not None:
            oprot.writeFieldBegin('voipTcpPort', TType.I32, 9)
            oprot.writeI32(self.voipTcpPort)
            oprot.writeFieldEnd()
        if self.fromZone is not None:
            oprot.writeFieldBegin('fromZone', TType.STRING, 10)
            oprot.writeString(self.fromZone.encode('utf-8') if sys.version_info[0] == 2 else self.fromZone)
            oprot.writeFieldEnd()
        if self.commParam is not None:
            oprot.writeFieldBegin('commParam', TType.STRING, 11)
            oprot.writeString(self.commParam.encode('utf-8') if sys.version_info[0] == 2 else self.commParam)
            oprot.writeFieldEnd()
        if self.polarisAddress is not None:
            oprot.writeFieldBegin('polarisAddress', TType.STRING, 12)
            oprot.writeString(self.polarisAddress.encode('utf-8') if sys.version_info[0] == 2 else self.polarisAddress)
            oprot.writeFieldEnd()
        if self.polarisUdpPort is not None:
            oprot.writeFieldBegin('polarisUdpPort', TType.I32, 13)
            oprot.writeI32(self.polarisUdpPort)
            oprot.writeFieldEnd()
        if self.polarisZone is not None:
            oprot.writeFieldBegin('polarisZone', TType.STRING, 14)
            oprot.writeString(self.polarisZone.encode('utf-8') if sys.version_info[0] == 2 else self.polarisZone)
            oprot.writeFieldEnd()
        if self.orionAddress is not None:
            oprot.writeFieldBegin('orionAddress', TType.STRING, 15)
            oprot.writeString(self.orionAddress.encode('utf-8') if sys.version_info[0] == 2 else self.orionAddress)
            oprot.writeFieldEnd()
        oprot.writeFieldStop()
        oprot.writeStructEnd()

    def validate(self):
        return

    def __repr__(self):
        L = ['%s=%r' % (key, value)
             for key, value in self.__dict__.items()]
        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

    def __eq__(self, other):
        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

    def __ne__(self, other):
        return not (self == other)


class GroupCall(object):
    """
    Attributes:
     - online
     - chatMid
     - hostMid
     - memberMids
     - started
     - mediaType
     - protocol

    """


    def __init__(self, online=None, chatMid=None, hostMid=None, memberMids=None, started=None, mediaType=None, protocol=None,):
        self.online = online
        self.chatMid = chatMid
        self.hostMid = hostMid
        self.memberMids = memberMids
        self.started = started
        self.mediaType = mediaType
        self.protocol = protocol

    def read(self, iprot):
        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
            iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec])
            return
        iprot.readStructBegin()
        while True:
            (fname, ftype, fid) = iprot.readFieldBegin()
            if ftype == TType.STOP:
                break
            if fid == 1:
                if ftype == TType.BOOL:
                    self.online = iprot.readBool()
                else:
                    iprot.skip(ftype)
            elif fid == 2:
                if ftype == TType.STRING:
                    self.chatMid = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 3:
                if ftype == TType.STRING:
                    self.hostMid = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 4:
                if ftype == TType.LIST:
                    self.memberMids = []
                    (_etype10, _size7) = iprot.readListBegin()
                    for _i11 in range(_size7):
                        _elem12 = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                        self.memberMids.append(_elem12)
                    iprot.readListEnd()
                else:
                    iprot.skip(ftype)
            elif fid == 5:
                if ftype == TType.I64:
                    self.started = iprot.readI64()
                else:
                    iprot.skip(ftype)
            elif fid == 6:
                if ftype == TType.I32:
                    self.mediaType = iprot.readI32()
                else:
                    iprot.skip(ftype)
            elif fid == 7:
                if ftype == TType.I32:
                    self.protocol = iprot.readI32()
                else:
                    iprot.skip(ftype)
            else:
                iprot.skip(ftype)
            iprot.readFieldEnd()
        iprot.readStructEnd()

    def write(self, oprot):
        if oprot._fast_encode is not None and self.thrift_spec is not None:
            oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec]))
            return
        oprot.writeStructBegin('GroupCall')
        if self.online is not None:
            oprot.writeFieldBegin('online', TType.BOOL, 1)
            oprot.writeBool(self.online)
            oprot.writeFieldEnd()
        if self.chatMid is not None:
            oprot.writeFieldBegin('chatMid', TType.STRING, 2)
            oprot.writeString(self.chatMid.encode('utf-8') if sys.version_info[0] == 2 else self.chatMid)
            oprot.writeFieldEnd()
        if self.hostMid is not None:
            oprot.writeFieldBegin('hostMid', TType.STRING, 3)
            oprot.writeString(self.hostMid.encode('utf-8') if sys.version_info[0] == 2 else self.hostMid)
            oprot.writeFieldEnd()
        if self.memberMids is not None:
            oprot.writeFieldBegin('memberMids', TType.LIST, 4)
            oprot.writeListBegin(TType.STRING, len(self.memberMids))
            for iter13 in self.memberMids:
                oprot.writeString(iter13.encode('utf-8') if sys.version_info[0] == 2 else iter13)
            oprot.writeListEnd()
            oprot.writeFieldEnd()
        if self.started is not None:
            oprot.writeFieldBegin('started', TType.I64, 5)
            oprot.writeI64(self.started)
            oprot.writeFieldEnd()
        if self.mediaType is not None:
            oprot.writeFieldBegin('mediaType', TType.I32, 6)
            oprot.writeI32(self.mediaType)
            oprot.writeFieldEnd()
        if self.protocol is not None:
            oprot.writeFieldBegin('protocol', TType.I32, 7)
            oprot.writeI32(self.protocol)
            oprot.writeFieldEnd()
        oprot.writeFieldStop()
        oprot.writeStructEnd()

    def validate(self):
        return

    def __repr__(self):
        L = ['%s=%r' % (key, value)
             for key, value in self.__dict__.items()]
        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

    def __eq__(self, other):
        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

    def __ne__(self, other):
        return not (self == other)


class CallHost(object):
    """
    Attributes:
     - port
     - zone

    """


    def __init__(self, port=None, zone=None,):
        self.port = port
        self.zone = zone

    def read(self, iprot):
        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
            iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec])
            return
        iprot.readStructBegin()
        while True:
            (fname, ftype, fid) = iprot.readFieldBegin()
            if ftype == TType.STOP:
                break
            if fid == 2:
                if ftype == TType.I32:
                    self.port = iprot.readI32()
                else:
                    iprot.skip(ftype)
            elif fid == 3:
                if ftype == TType.STRING:
                    self.zone = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            else:
                iprot.skip(ftype)
            iprot.readFieldEnd()
        iprot.readStructEnd()

    def write(self, oprot):
        if oprot._fast_encode is not None and self.thrift_spec is not None:
            oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec]))
            return
        oprot.writeStructBegin('CallHost')
        if self.port is not None:
            oprot.writeFieldBegin('port', TType.I32, 2)
            oprot.writeI32(self.port)
            oprot.writeFieldEnd()
        if self.zone is not None:
            oprot.writeFieldBegin('zone', TType.STRING, 3)
            oprot.writeString(self.zone.encode('utf-8') if sys.version_info[0] == 2 else self.zone)
            oprot.writeFieldEnd()
        oprot.writeFieldStop()
        oprot.writeStructEnd()

    def validate(self):
        return

    def __repr__(self):
        L = ['%s=%r' % (key, value)
             for key, value in self.__dict__.items()]
        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

    def __eq__(self, other):
        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

    def __ne__(self, other):
        return not (self == other)
all_structs.append(CallRoute)
CallRoute.thrift_spec = (
    None,  # 0
    (1, TType.STRING, 'fromToken', 'UTF8', None, ),  # 1
    (2, TType.I32, 'callFlowType', None, None, ),  # 2
    (3, TType.STRING, 'voipAddress', 'UTF8', None, ),  # 3
    (4, TType.I32, 'voipUdpPort', None, None, ),  # 4
    (5, TType.I32, 'voipTcpPort', None, None, ),  # 5
    (6, TType.STRING, 'fromZone', 'UTF8', None, ),  # 6
    (7, TType.STRING, 'toZone', 'UTF8', None, ),  # 7
    (8, TType.BOOL, 'fakeCall', None, None, ),  # 8
    (9, TType.STRING, 'ringbackTone', 'UTF8', None, ),  # 9
    (10, TType.STRING, 'toMid', 'UTF8', None, ),  # 10
    (11, TType.STRING, 'tunneling', 'UTF8', None, ),  # 11
    (12, TType.STRING, 'commParam', 'UTF8', None, ),  # 12
)
all_structs.append(GroupCallRoute)
GroupCallRoute.thrift_spec = (
    None,  # 0
    (1, TType.STRING, 'token', 'UTF8', None, ),  # 1
    (2, TType.STRUCT, 'cscf', [CallHost, None], None, ),  # 2
    (3, TType.STRUCT, 'mix', [CallHost, None], None, ),  # 3
    (4, TType.STRING, 'hostMid', 'UTF8', None, ),  # 4
    (5, TType.LIST, 'capabilities', (TType.STRING, 'UTF8', False), None, ),  # 5
    (6, TType.I32, 'proto', None, None, ),  # 6
    (7, TType.STRING, 'voipAddress', 'UTF8', None, ),  # 7
    (8, TType.I32, 'voipUdpPort', None, None, ),  # 8
    (9, TType.I32, 'voipTcpPort', None, None, ),  # 9
    (10, TType.STRING, 'fromZone', 'UTF8', None, ),  # 10
    (11, TType.STRING, 'commParam', 'UTF8', None, ),  # 11
    (12, TType.STRING, 'polarisAddress', 'UTF8', None, ),  # 12
    (13, TType.I32, 'polarisUdpPort', None, None, ),  # 13
    (14, TType.STRING, 'polarisZone', 'UTF8', None, ),  # 14
    (15, TType.STRING, 'orionAddress', 'UTF8', None, ),  # 15
)
all_structs.append(GroupCall)
GroupCall.thrift_spec = (
    None,  # 0
    (1, TType.BOOL, 'online', None, None, ),  # 1
    (2, TType.STRING, 'chatMid', 'UTF8', None, ),  # 2
    (3, TType.STRING, 'hostMid', 'UTF8', None, ),  # 3
    (4, TType.LIST, 'memberMids', (TType.STRING, 'UTF8', False), None, ),  # 4
    (5, TType.I64, 'started', None, None, ),  # 5
    (6, TType.I32, 'mediaType', None, None, ),  # 6
    (7, TType.I32, 'protocol', None, None, ),  # 7
)
all_structs.append(CallHost)
CallHost.thrift_spec = (
    None,  # 0
    None,  # 1
    (2, TType.I32, 'port', None, None, ),  # 2
    (3, TType.STRING, 'zone', 'UTF8', None, ),  # 3
)
fix_spec(all_structs)
del all_structs
