rendered paste bodyusing System;
using System.Xml;
using jabber.protocol;
namespace Sample
{
/// <summary>
/// <iq to='juliet@capulet.com/balcony'
/// from='romeo@montague.net/orchard'
/// id='jingle1'
/// type='set'>
/// <jingle xmlns='http://jabber.org/protocol/jingle'
/// action='session-initiate'
/// initiator='romeo@montague.net/orchard'
/// sid='a73sjjvkla37jfea'>
/// <description ...>
/// <transport xmlns='http://jabber.org/protocol/jingle/transport/iax' version='2'/>
/// </jingle>
/// </iq>
/// </summary>
public class JingleIQ : jabber.protocol.client.IQ
{
public JingleIQ(XmlDocument doc) : base(doc) { }
public XmlElement Jingle
{
get { return this["jingle"]; }
}
public XmlElement Description
{
get { return this["description"]; }
}
public XmlElement Transport
{
get { return this["transport"]; }
}
}
/// <summary>
/// <jingle xmlns='http://jabber.org/protocol/jingle'
/// action='session-initiate'
/// initiator='romeo@montague.net/orchard'
/// sid='a73sjjvkla37jfea'>
/// <description ...>
/// <transport xmlns='http://jabber.org/protocol/jingle/transport/iax' version='2'/>
/// </jingle>
/// </summary>
public class Jingle : jabber.protocol.Element
{
public Jingle(XmlDocument doc) : base("jingle", URI.JINGLE, doc) { }
public Jingle(string prefix, XmlQualifiedName qname, XmlDocument doc) : base(prefix, qname, doc) { }
public string Action
{
get { return GetAttribute("action"); }
set { SetAttribute("action", value); }
}
public string Initiator
{
get { return GetAttribute("initiator"); }
set { SetAttribute("initiator", value); }
}
public string SID
{
get { return GetAttribute("sid"); }
set { SetAttribute("sid", value); }
}
public XmlElement Description
{
get { return this["description"]; }
}
public JingleTransport Transport
{
get
{
try
{
JingleTransport transport = (JingleTransport)this["transport"];;
return transport;
}
catch (Exception e)
{
Console.WriteLine();
}
return null;
}
}
}
/// <summary>
/// <transport xmlns='http://jabber.org/protocol/jingle/transport/iax'
/// version='2'
/// secure='aes128'
/// user='some-Asterisk-Username'
/// password='some-Asterisk-Password'>
/// <candidate name='local' ip='some-Local-IP-address-here' port='some-Local-Port-here'/>
/// <candidate name='public' ip='some-Remote-IP-address-here' port='some-Remote-Port-here'/>
/// </transport>
/// </summary>
public class JingleTransport : jabber.protocol.Element
{
public JingleTransport(XmlDocument doc) : base("transport", URI.JINGLE_IAX, doc) { }
public JingleTransport(string prefix, XmlQualifiedName qname, XmlDocument doc) : base(prefix, qname, doc) { }
public string Version
{
get { return GetAttribute("version"); }
set { SetAttribute("version", value); }
}
public string Secure
{
get { return GetAttribute("secure"); }
set { SetAttribute("secure", value); }
}
public string User
{
get { return GetAttribute("user"); }
set { SetAttribute("user", value); }
}
public string Password
{
get { return GetAttribute("password"); }
set { SetAttribute("password", value); }
}
public JingleCandidate[] Candidates
{
get
{
XmlNodeList nl = GetElementsByTagName("candidate");
JingleCandidate[] items = new JingleCandidate[nl.Count];
int i=0;
foreach (XmlNode n in nl)
{
items[i] = (JingleCandidate) n;
i++;
}
return items;
}
}
}
/// <summary>
/// <candidate name='local' ip='some-Local-IP-address-here' port='some-Local-Port-here'/>
/// </summary>
public class JingleCandidate : jabber.protocol.Element
{
public JingleCandidate(XmlDocument doc) : base("candidate", doc) { }
public JingleCandidate(string prefix, XmlQualifiedName qname, XmlDocument doc) : base(prefix, qname, doc) { }
public new string Name
{
get { return GetAttribute("name"); }
set { SetAttribute("name", value); }
}
public string IP
{
get { return GetAttribute("ip"); }
set { SetAttribute("ip", value); }
}
public string Port
{
get { return GetAttribute("port"); }
set { SetAttribute("port", value); }
}
public string URI
{
get { return GetAttribute("uri"); }
set { SetAttribute("uri", value); }
}
}
}