|
View:
New views
9 Messages
—
Rating Filter:
Alert me
|
|
|
BYE notification in CAFEHi all,
I have a question about what happens when a communication, let's say a simple two-party call, is ended by caller/callee. If I understand correctly, the corresponding BYE message is sent directly from caller to callee, i.e. not via a central server, unless this has been specified as routing information in the SIP header upon invitation. Is there a way in CAFE to make sure that the BYE message does travel via the central server? I need this in order to enable the server to do some bookkeeping after each call. The ParticipantEvent.Type.LEFT seems to be no help, as methods triggering on this event type are not executed with me in case of a two-party call. Thanks, Ralf |
|
|
Re: BYE notification in CAFEGiven it is a B2BUA, the LEFT event should have got triggered. Could
you please let me know about your setup? - Binod. On 24-Nov-10, at 8:42 PM, R.K.P. Pisters wrote: > Hi all, > > I have a question about what happens when a communication, let's say > a simple two-party call, is ended by caller/callee. If I understand > correctly, the corresponding BYE message is sent directly from > caller to callee, i.e. not via a central server, unless this has > been specified as routing information in the SIP header upon > invitation. Is there a way in CAFE to make sure that the BYE message > does travel via the central server? I need this in order to enable > the server to do some bookkeeping after each call. The > ParticipantEvent.Type.LEFT seems to be no help, as methods > triggering on this event type are not executed with me in case of a > two-party call. > > Thanks, > Ralf --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscribe@... For additional commands, e-mail: users-help@... |
|
|
Re: BYE notification in CAFEHi Binod,
I run Sailfin v2 b31g-fcs with CAFE v1 b34, using two X-Lite 3 softphones, running on the same machine (Vista) as Sailfin. I make use of the REST API to start and end calls. Below I have summed up the resulting events upon initiating and stopping calls, both directly from the softphone and using REST. Initiating a call using REST API: - triggered: ParticipantEvent.Type.JOINED (twice) CommunicationEvent.Type.ESTABLISHED - not triggered: CommunicationEvent.Type.INITIALIZATION CommunicationEvent.Type.STARTED ParticipantEvent.Type.JOINING Stopping a call using REST API: - not triggered: CommunicationEvent.Type.FINISHED ParticipantEvent.Type.LEFT Initiating a call from a softphone: - triggered: CommunicationEvent.Type.INITIALIZATION CommunicationEvent.Type.STARTED ParticipantEvent.Type.JOINING (twice) - not triggered: ParticipationEvent.Type.JOINED CommunicationEvent.Type.ESTABLISHED Stopping a call from a softphone: - not triggered: CommunicationEvent.Type.FINISHED ParticipantEvent.Type.LEFT As you can see, nothing seems to happen when a call is ended. See below for the log part that comes up when deploying the project to Sailfin, and the code of the CallBean. If you need more info, just let me know. Thanks, Ralf classLoader = WebappClassLoader delegate: true repositories: /WEB-INF/classes/ ----------> Parent Classloader: EJBClassLoader : urlSet = [] doneCalled = false Parent -> java.net.URLClassLoader@cc7439 SharedSecrets.getJavaNetAccess()=java.net.URLClassLoader$7@bf3374 ExtensionModulesManager: Unloading of extension module cafe-app successful. org.glassfish.cafe.annotations.CafeAnnotationHandler Processed Annotation[@org.glassfish.cafe.api.Context()] : ModuleName[SIP] DeclaringClass[com.mypackage.sip.ExampleServlet] AnnotatedElement[org.glassfish.cafe.api.CommunicationSession com.mypackage.sip.ExampleServlet.session] org.glassfish.cafe.annotations.CafeAnnotationHandler Processed Annotation[@org.glassfish.cafe.api.bean.CommunicationBean(name=, type=class java.lang.Object)] : ModuleName[SIP] DeclaringClass[com.mypackage.sip.CallBean] AnnotatedElement[class com.mypackage.sip.CallBean] org.glassfish.cafe.annotations.CafeAnnotationHandler Processed Annotation[@org.glassfish.cafe.api.Context()] : ModuleName[SIP] DeclaringClass[com.mypackage.sip.CallBean] AnnotatedElement[org.glassfish.cafe.api.CommunicationContext com.mypackage.sip.CallBean.context] org.glassfish.cafe.annotations.CafeAnnotationHandler Processed Annotation[@org.glassfish.cafe.api.Context()] : ModuleName[SIP] DeclaringClass[com.mypackage.sip.CallBean] AnnotatedElement[org.glassfish.cafe.api.CommunicationService com.mypackage.sip.CallBean.service] org.glassfish.cafe.annotations.CafeAnnotationHandler Processed Annotation[@org.glassfish.cafe.api.Context()] : ModuleName[SIP] DeclaringClass[com.mypackage.sip.CallBean] AnnotatedElement[org.glassfish.cafe.api.CommunicationSession com.mypackage.sip.CallBean.session] org.glassfish.cafe.annotations.CafeAnnotationHandler Processed Annotation[@org.glassfish.cafe.api.bean.CommunicationEvent(communicationType=interface org.glassfish.cafe.api.Conversation, type=FINISHED)] : ModuleName[SIP] DeclaringClass[com.mypackage.sip.CallBean] AnnotatedElement[void com.mypackage.sip.CallBean.handleFinished()] org.glassfish.cafe.annotations.CafeAnnotationHandler Processed Annotation[@org.glassfish.cafe.api.bean.ParticipantEvent(communicationType=interface org.glassfish.cafe.api.Conversation, type=JOINED)] : ModuleName[SIP] DeclaringClass[com.mypackage.sip.CallBean] AnnotatedElement[void com.mypackage.sip.CallBean.handleJoined()] org.glassfish.cafe.annotations.CafeAnnotationHandler Processed Annotation[@org.glassfish.cafe.api.bean.CommunicationEvent(communicationType=interface org.glassfish.cafe.api.Conversation, type=ESTABLISHED)] : ModuleName[SIP] DeclaringClass[com.mypackage.sip.CallBean] AnnotatedElement[void com.mypackage.sip.CallBean.handleEstablished()] org.glassfish.cafe.annotations.CafeAnnotationHandler Processed Annotation[@org.glassfish.cafe.api.bean.CommunicationEvent(communicationType=interface org.glassfish.cafe.api.Conversation, type=INITIALIZATION)] : ModuleName[SIP] DeclaringClass[com.mypackage.sip.CallBean] AnnotatedElement[void com.mypackage.sip.CallBean.handleInit()] org.glassfish.cafe.annotations.CafeAnnotationHandler Processed Annotation[@org.glassfish.cafe.api.bean.ParticipantEvent(communicationType=interface org.glassfish.cafe.api.Conversation, type=LEFT)] : ModuleName[SIP] DeclaringClass[com.mypackage.sip.CallBean] AnnotatedElement[void com.mypackage.sip.CallBean.handleLeft()] org.glassfish.cafe.annotations.CafeAnnotationHandler Processed Annotation[@org.glassfish.cafe.api.bean.ParticipantEvent(communicationType=interface org.glassfish.cafe.api.Conversation, type=JOINING)] : ModuleName[SIP] DeclaringClass[com.mypackage.sip.CallBean] AnnotatedElement[void com.mypackage.sip.CallBean.handleJoining()] org.glassfish.cafe.annotations.CafeAnnotationHandler Processed Annotation[@org.glassfish.cafe.api.bean.CommunicationEvent(communicationType=interface org.glassfish.cafe.api.Conversation, type=STARTED)] : ModuleName[SIP] DeclaringClass[com.mypackage.sip.CallBean] AnnotatedElement[void com.mypackage.sip.CallBean.handleStarted()] deployed with moduleid = cafe-app Application /SIP configured with SIP persistence type: memory, frequency: null, and scope: null Context available with context root/SIP Scanning for root resource and provider classes in the packages: org.glassfish.cafe.rest.impl Root resource classes found: class org.glassfish.cafe.rest.impl.jersey.CommunicationResourceImpl Provider classes found: Service Attributes Configured is [(DomainName = null),(DomainProxy = null),(Registrar = null),(XcapRoot = null),(MSControlJndiName = null),] @CommunicationBean public class CallBean { private static final Logger log = Logger.getLogger(CallBean.class.getName()); @Context CommunicationContext<Conversation, ?, ?> context; @Context CommunicationService service; @Context CommunicationSession session; @CommunicationEvent(type = CommunicationEvent.Type.INITIALIZATION, communicationType = Conversation.class) void handleInit() { log.log(Level.INFO, "Conversation with name {0} has been initialized.", context.getCommunication().getName()); } @CommunicationEvent(type = CommunicationEvent.Type.ESTABLISHED, communicationType = Conversation.class) void handleEstablished() { log.log(Level.INFO, "Conversation with name {0} has been established.", context.getCommunication().getName()); } @CommunicationEvent(type = CommunicationEvent.Type.STARTED, communicationType = Conversation.class) void handleStarted() { log.log(Level.INFO, "Conversation with name {0} has been started.", context.getCommunication().getName()); } @CommunicationEvent(type = CommunicationEvent.Type.FINISHED, communicationType = Conversation.class) void handleFinished() { log.log(Level.INFO, "Conversation with name {0} has finished.", context.getCommunication().getName()); } @ParticipantEvent(type = ParticipantEvent.Type.JOINING, communicationType = Conversation.class) void handleJoining() { log.log(Level.INFO, "Participant with name {0} is joining.", context.getParticipant().getName()); } @ParticipantEvent(type = ParticipantEvent.Type.JOINED, communicationType = Conversation.class) void handleJoined() { log.log(Level.INFO, "Participant with name {0} has joined.", context.getParticipant().getName()); } @ParticipantEvent(type = ParticipantEvent.Type.LEFT, communicationType = Conversation.class) void handleLeft() { log.log(Level.INFO, "Participant with name {0} has left.", context.getParticipant().getName()); } } On Thu, Nov 25, 2010 at 5:57 AM, Binod PG <Binod.Pg@...> wrote: Given it is a B2BUA, the LEFT event should have got triggered. Could you please let me know about your setup? |
|
|
Re: BYE notification in CAFEHi Ralf,
The events are emitted only when the messages come from the softphone. So, the REST side seems correct. But, when the call is initiated from the phone, ESTABLISHED , JOINED and LEFT are supposed to be invoked. It appear to me that the call is not getting established. How does the X-Lite configuration look like? - Binod. On 25-Nov-10, at 3:07 PM, R.K.P. Pisters wrote: Hi Binod, |
|
|
Re: BYE notification in CAFEHi Binod,
Strange thing: when I initiate a call from one of the two softphones and subsequently inspect the status of the call in my browser (using the REST API), I see that the status equals STARTING. But there is a connection, because I can hear myself over the headset. The X-Lite configurations correspond exactly to the one in your tutorial "Tips on working with X-Lite and SailFin". Any ideas? Thanks, Ralf On Thu, Nov 25, 2010 at 12:10 PM, Binod PG <Binod.Pg@...> wrote:
|
|
|
Re: BYE notification in CAFEHi Raif,
Please set the sailfin-cafe logging to FINE and send me the server.log. thanks, Binod. On 25-Nov-10, at 5:44 PM, R.K.P. Pisters wrote: Hi Binod, |
|
|
Re: BYE notification in CAFEHi Binod,
Please find the log attached. Note that the server doesn't start up very cleanly, perhaps that's related to this problem. After starting the server, I've registered Alice and Bob, initiated a call from Alice to Bob, and hung up after a couple of seconds. Some time after that the last message (481 Call/Transaction Does Not Exist) arrived. Hope you can be of assistance. Thanks again, Ralf On Thu, Nov 25, 2010 at 2:45 PM, Binod PG <Binod.Pg@...> wrote:
--------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscribe@... For additional commands, e-mail: users-help@... |
|
|
Re: BYE notification in CAFEOk, the ACK from X-Lite doesnt seem to reach the server at all.
And your machine seem to be using IPV6 as you can see in the SIP message here. I dont know if X-Lite has started supporting ipv6 in their free version or not. Content-Length: 433 Contact: <sip:2001:0:4137:9e76:188c:1f47:3f57:fea9:5060;fid=server_1> To: "bob"<sip:bob@...> Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO Cseq: 1 INVITE Try using java.net.preferIPv4Stack (http://download.oracle.com/javase/6/docs/technotes/guides/net/ipv6_guide/index.html ) You can also change the contact address of the sailfin server by tweaking external-address. http://old.nabble.com/Private-IP-in-Record-Route-header-td24205043.html HTH - Binod. On 25-Nov-10, at 7:52 PM, R.K.P. Pisters wrote: > Hi Binod, > > Please find the log attached. Note that the server doesn't start up > very cleanly, perhaps that's related to this problem. After starting > the server, I've registered Alice and Bob, initiated a call from > Alice to Bob, and hung up after a couple of seconds. Some time after > that the last message (481 Call/Transaction Does Not Exist) arrived. > > Hope you can be of assistance. > > Thanks again, > Ralf > > > On Thu, Nov 25, 2010 at 2:45 PM, Binod PG <Binod.Pg@...> wrote: > Hi Raif, > > Please set the sailfin-cafe logging to FINE and send me the > server.log. > > http://twitter.com/binodpg/status/12116075894 > > thanks, > Binod. > > On 25-Nov-10, at 5:44 PM, R.K.P. Pisters wrote: > >> Hi Binod, >> >> Strange thing: when I initiate a call from one of the two >> softphones and subsequently inspect the status of the call in my >> browser (using the REST API), I see that the status equals >> STARTING. But there is a connection, because I can hear myself over >> the headset. >> >> The X-Lite configurations correspond exactly to the one in your >> tutorial "Tips on working with X-Lite and SailFin". >> >> Any ideas? >> >> Thanks, >> Ralf >> >> On Thu, Nov 25, 2010 at 12:10 PM, Binod PG <Binod.Pg@...> wrote: >> Hi Ralf, >> >> The events are emitted only when the messages come from the >> softphone. So, the REST side seems correct. >> >> But, when the call is initiated from the phone, ESTABLISHED , >> JOINED and LEFT are supposed to be invoked. >> It appear to me that the call is not getting established. How does >> the X-Lite configuration look like? >> >> - Binod. >> > > > < > server > .log > >--------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscribe@... > For additional commands, e-mail: users-help@... --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscribe@... For additional commands, e-mail: users-help@... |
|
|
Re: BYE notification in CAFEHi Binod,
Sorry for this late response, I didn't get round to trying your solution until today. You were right, the free X-Lite 3 version does not support IPv6. Setting the preferIPv4Stack property fixed it. I really appreciate that you looked into this, thanks very much. Ralf On Fri, Nov 26, 2010 at 7:49 AM, Binod PG <Binod.Pg@...> wrote: Ok, the ACK from X-Lite doesnt seem to reach the server at all. |
| Free embeddable forum powered by Nabble | Forum Help |