Added new namespace and use it to detect jingle version and audio capability from advertised features.

git-svn-id: http://yate.null.ro/svn/yate/trunk@4214 acf43c95-373e-0410-b603-e72c3f656dc1
This commit is contained in:
marian 2011-03-24 15:33:32 +00:00
parent e49000794b
commit fb96db9be7
4 changed files with 10 additions and 4 deletions

View File

@ -2508,7 +2508,8 @@ void JBEntityCapsList::addCaps(NamedList& list, JBEntityCaps& caps)
int jingleVersion = -1;
if (caps.m_features.get(XMPPNamespace::Jingle))
jingleVersion = 1;
else if (caps.m_features.get(XMPPNamespace::JingleSession))
else if (caps.m_features.get(XMPPNamespace::JingleSession) ||
caps.m_features.get(XMPPNamespace::JingleVoiceV1))
jingleVersion = 0;
NamedString* params = new NamedString("caps.params");
list.addParam("caps.id",caps.toString());
@ -2516,14 +2517,16 @@ void JBEntityCapsList::addCaps(NamedList& list, JBEntityCaps& caps)
if (jingleVersion != -1) {
params->append("caps.jingle_version");
list.addParam("caps.jingle_version",String(jingleVersion));
if (caps.hasAudio()) {
params->append("caps.audio",",");
list.addParam("caps.audio",String::boolText(true));
}
switch (jingleVersion) {
case 1:
CHECK_NS(XMPPNamespace::JingleAppsRtpAudio,"caps.audio");
CHECK_NS(XMPPNamespace::JingleTransfer,"caps.calltransfer");
CHECK_NS(XMPPNamespace::JingleAppsFileTransfer,"caps.filetransfer");
break;
case 0:
CHECK_NS(XMPPNamespace::JingleAudio,"caps.audio");
break;
}
}

View File

@ -232,6 +232,7 @@ const String XMPPNamespace::s_array[Count] = {
"http://www.google.com/session", // JingleSession
"http://www.google.com/session/phone", // JingleAudio
"http://www.google.com/transport/p2p", // JingleTransport
"http://www.google.com/xmpp/protocol/voice/v1", // JingleVoiceV1
"urn:xmpp:jingle:apps:rtp:info", // JingleRtpInfoOld
"http://jabber.org/protocol/jingle/info/dtmf", // DtmfOld
"jabber:x:oob", // XOob

View File

@ -218,6 +218,7 @@ public:
JingleSession, // http://www.google.com/session
JingleAudio, // http://www.google.com/session/phone
JingleTransport, // http://www.google.com/transport/p2p
JingleVoiceV1, // http://www.google.com/xmpp/protocol/voice/v1
JingleRtpInfoOld, // urn:xmpp:jingle:apps:rtp:info
DtmfOld, // http://jabber.org/protocol/jingle/info/dtmf
XOob, // jabber:x:oob

View File

@ -2669,7 +2669,8 @@ public:
*/
inline bool hasAudio() {
return m_features.get(XMPPNamespace::JingleAppsRtpAudio) ||
m_features.get(XMPPNamespace::JingleAudio);
m_features.get(XMPPNamespace::JingleAudio) ||
m_features.get(XMPPNamespace::JingleVoiceV1);
}
/**