|
|
|
|
@ -15,8 +15,10 @@
|
|
|
|
|
import javax.sip.address.*;
|
|
|
|
|
import javax.sip.header.*;
|
|
|
|
|
import javax.sip.message.*;
|
|
|
|
|
import javax.sip.message.Message;
|
|
|
|
|
|
|
|
|
|
import gov.nist.javax.sip.*;
|
|
|
|
|
import gov.nist.javax.sip.header.*;
|
|
|
|
|
|
|
|
|
|
import net.java.sip.communicator.impl.protocol.sip.net.*;
|
|
|
|
|
import net.java.sip.communicator.service.protocol.*;
|
|
|
|
|
@ -107,15 +109,7 @@ public boolean processRequest(RequestEvent requestEvent)
|
|
|
|
|
method));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Iterable<String> knownEventsList = provider.getKnownEventsList();
|
|
|
|
|
|
|
|
|
|
synchronized (knownEventsList)
|
|
|
|
|
{
|
|
|
|
|
for (String event : knownEventsList)
|
|
|
|
|
optionsOK.addHeader(
|
|
|
|
|
provider.getHeaderFactory().createAllowEventsHeader(
|
|
|
|
|
event));
|
|
|
|
|
}
|
|
|
|
|
addAllowEventsHeader(optionsOK);
|
|
|
|
|
}
|
|
|
|
|
catch (ParseException ex)
|
|
|
|
|
{
|
|
|
|
|
@ -158,6 +152,32 @@ public boolean processRequest(RequestEvent requestEvent)
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Creates a list of known events and add them to the value of
|
|
|
|
|
* Allow-Events header
|
|
|
|
|
* @param message the message to set the newly created header
|
|
|
|
|
* @throws ParseException error on creating header
|
|
|
|
|
*/
|
|
|
|
|
private void addAllowEventsHeader(Message message)
|
|
|
|
|
throws ParseException
|
|
|
|
|
{
|
|
|
|
|
Iterable<String> knownEventsList = provider.getKnownEventsList();
|
|
|
|
|
|
|
|
|
|
AllowEventsList eventsList = new AllowEventsList();
|
|
|
|
|
|
|
|
|
|
synchronized (knownEventsList)
|
|
|
|
|
{
|
|
|
|
|
for (String event : knownEventsList)
|
|
|
|
|
{
|
|
|
|
|
eventsList.add(
|
|
|
|
|
(AllowEvents)provider.getHeaderFactory()
|
|
|
|
|
.createAllowEventsHeader(event));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
message.setHeader(eventsList);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Returns the next long to use as a cseq header value.
|
|
|
|
|
* @return the next long to use as a cseq header value.
|
|
|
|
|
@ -323,19 +343,7 @@ public void run()
|
|
|
|
|
provider.getHeaderFactory().createAllowHeader(method));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Iterator<String> events
|
|
|
|
|
= provider.getKnownEventsList().iterator();
|
|
|
|
|
|
|
|
|
|
synchronized (provider.getKnownEventsList())
|
|
|
|
|
{
|
|
|
|
|
while (events.hasNext())
|
|
|
|
|
{
|
|
|
|
|
String event = events.next();
|
|
|
|
|
|
|
|
|
|
request.addHeader(provider.getHeaderFactory()
|
|
|
|
|
.createAllowEventsHeader(event));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
addAllowEventsHeader(request);
|
|
|
|
|
|
|
|
|
|
//Transaction
|
|
|
|
|
ClientTransaction optionsTrans = null;
|
|
|
|
|
|