def __init__(self,name,value,rfc2425parameters=None):
VCardField.__init__(self,name)<EOL>if not rfc2425parameters:<EOL><INDENT>rfc2425parameters={}<EOL><DEDENT>self.uri,self.sound,self.phonetic=[None]*<NUM_LIT:3><EOL>if isinstance(value,libxml2.xmlNode):<EOL><INDENT>n=value.children<EOL>vns=get_node_ns(value)<EOL>while n:<EOL><INDENT>if n.type!='<STR_LIT>':<EOL><INDENT>n=n.next<EOL>continue<EOL><DEDENT>ns=get_node_ns(n)<EOL>if (ns and vns and ns.getContent()!=vns.getContent()):<EOL><INDENT>n=n.next<EOL>continue<EOL><DEDENT>if n.name=='<STR_LIT>':<EOL><INDENT>if (self.phonetic or self.uri):<EOL><INDENT>raise ValueError("<STR_LIT>")<EOL><DEDENT>self.sound=base64.decodestring(n.getContent())<EOL><DEDENT>if n.name=='<STR_LIT>':<EOL><INDENT>if (self.sound or self.uri):<EOL><INDENT>raise ValueError("<STR_LIT>")<EOL><DEDENT>self.phonetic=unicode(n.getContent(),"<STR_LIT:utf-8>","<STR_LIT:replace>")<EOL><DEDENT>if n.name=='<STR_LIT>':<EOL><INDENT>if (self.phonetic or self.sound):<EOL><INDENT>raise ValueError("<STR_LIT>")<EOL><DEDENT>self.uri=unicode(n.getContent(),"<STR_LIT:utf-8>","<STR_LIT:replace>")<EOL><DEDENT>n=n.next<EOL><DEDENT>if (not self.phonetic and not self.uri and not self.sound):<EOL><INDENT>raise Empty("<STR_LIT>")<EOL><DEDENT><DEDENT>else:<EOL><INDENT>if rfc2425parameters.get("<STR_LIT:value>", "<STR_LIT>").lower()=="<STR_LIT>":<EOL><INDENT>self.uri=value<EOL>self.sound=None<EOL>self.phonetic=None<EOL><DEDENT>else:<EOL><INDENT>self.sound=value<EOL>self.uri=None<EOL>self.phonetic=None<EOL><DEDENT><DEDENT>
Initialize a `VCardSound` object.

        :Parameters:
            - `name`: field name
            - `value`: field value as string or an XML node
            - `rfc2425parameters`: optional RFC 2425 parameters
        :Types:
            - `name`: `str`
            - `value`: `str` or `libxml2.xmlNode`
            - `rfc2425parameters`: `dict`