@In

19 views
Skip to first unread message

zubeen

unread,
Jun 16, 2009, 1:09:00 AM6/16/09
to mobicents-public
org.jboss.seam.RequiredException: @In attribute requires non-null
value: sharedObjectStore.sipSession

I have used the @In attribute for a SipSession...and obviously it s
null....so where do i initialize it first..in the class that handles
my Sip events?

zubeen

unread,
Jun 16, 2009, 1:09:30 AM6/16/09
to mobicents-public
and as @out?

Vladimir Ralev

unread,
Jun 16, 2009, 6:01:01 AM6/16/09
to mobicent...@googlegroups.com
Most likely you are trying to inject SipSessio from Web context. SipSession is available from SIP and Media context only. If you need to access SipSession from Web context you sould organize them in your own structures (see IPBX where SipSession are stored in a global store)

On Tue, Jun 16, 2009 at 8:09 AM, zubeen <wack...@gmail.com> wrote:

and as @out?


Vladimir Ralev

unread,
Jun 16, 2009, 5:33:32 PM6/16/09
to mobicent...@googlegroups.com
If this explanation is confusing for you it just means that from a web page action the SipSession doesn't exist. I forgot to tell you that it is a common mistake to call the same component from web and sip/media context. In most cases you can simply do
@In(required=false) and @Out(required=false)

Otherwise what I said is still valid, try to find some way to organize the SipSessions in a shared place.

zubeen

unread,
Jun 17, 2009, 2:02:40 AM6/17/09
to mobicents-public
i did use required=false...
though im not injecting them anymore...using@Resource for the
SipFactory...which solved the prob BUT
getting a Null Pointer Exception at SipApplicationSession session=
sipFactory.createApplicationSession();

Where is your global store in the ipbx? PbxEventHandler?

Jean Deruelle

unread,
Jun 17, 2009, 3:35:36 AM6/17/09
to mobicent...@googlegroups.com
could you share that stakctrace ? are you sure the sipfactory is injected ? can you post the code using this and the @Resource annotation ?

zubeen

unread,
Jun 17, 2009, 4:01:15 AM6/17/09
to mobicents-public
STACK TRACE:
13:28:59,932 ERROR [application] /layout/chatpanel.xhtml @34,38
action="#{sharedStore.sendText}": java.lang.NullPointerException
javax.faces.el.EvaluationException: /layout/chatpanel.xhtml @34,38
action="#{sharedStore.sendText}": java.lang.NullPointerException
at com.sun.facelets.el.LegacyMethodBinding.invoke
(LegacyMethodBinding.java:73)
at com.sun.faces.application.ActionListenerImpl.processAction
(ActionListenerImpl.java:102)
at javax.faces.component.UICommand.broadcast(UICommand.java:387)
at org.ajax4jsf.component.AjaxActionComponent.broadcast
(AjaxActionComponent.java:55)
at org.ajax4jsf.component.AjaxViewRoot.processEvents
(AjaxViewRoot.java:321)
at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents
(AjaxViewRoot.java:296)
at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:
253)
at org.ajax4jsf.component.AjaxViewRoot.processApplication
(AjaxViewRoot.java:466)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute
(InvokeApplicationPhase.java:82)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:
118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:206)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
(SeamFilter.java:83)
at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
(SeamFilter.java:69)
at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:
90)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
(SeamFilter.java:69)
at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:
64)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
(SeamFilter.java:69)
at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
(SeamFilter.java:69)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:
177)
at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:267)
at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest
(BaseFilter.java:380)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:507)
at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
(SeamFilter.java:69)
at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
(SeamFilter.java:69)
at org.jboss.seam.web.HotDeployFilter.doFilter(HotDeployFilter.java:
53)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
(SeamFilter.java:69)
at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter
(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:230)
at org.mobicents.servlet.sip.startup.SipStandardContextValve.invoke
(SipStandardContextValve.java:218)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke
(SecurityAssociationValve.java:182)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke
(AuthenticatorBase.java:432)
at org.jboss.web.tomcat.security.JaccContextValve.invoke
(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke
(CachedConnectionValve.java:157)
at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service
(CoyoteAdapter.java:262)
at org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:
446)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.NullPointerException
at org.prism.seample.session.ChatAction.sendToUser(ChatAction.java:
32)
at org.prism.seample.session.StaticSharedStore.sendText
(StaticSharedStore.java:62)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
at org.jboss.seam.intercept.RootInvocationContext.proceed
(RootInvocationContext.java:31)
at org.jboss.seam.intercept.SeamInvocationContext.proceed
(SeamInvocationContext.java:56)
at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke
(RollbackInterceptor.java:28)
at org.jboss.seam.intercept.SeamInvocationContext.proceed
(SeamInvocationContext.java:68)
at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke
(MethodContextInterceptor.java:44)
at org.jboss.seam.intercept.SeamInvocationContext.proceed
(SeamInvocationContext.java:68)
at org.jboss.seam.intercept.RootInterceptor.invoke
(RootInterceptor.java:107)
at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation
(JavaBeanInterceptor.java:185)
at org.jboss.seam.intercept.JavaBeanInterceptor.invoke
(JavaBeanInterceptor.java:103)
at org.prism.seample.session.StaticSharedStore_$$_javassist_6.sendText
(StaticSharedStore_$$_javassist_6.java)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:
329)
at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:
342)
at org.jboss.el.parser.AstPropertySuffix.invoke
(AstPropertySuffix.java:58)
at org.jboss.el.parser.AstValue.invoke(AstValue.java:96)
at org.jboss.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:
276)
at com.sun.facelets.el.TagMethodExpression.invoke
(TagMethodExpression.java:68)
at com.sun.facelets.el.LegacyMethodBinding.invoke
(LegacyMethodBinding.java:69)
... 52 more
13:28:59,935 WARN [lifecycle] #{sharedStore.sendText}: /layout/
chatpanel.xhtml @34,38 action="#{sharedStore.sendText}":
java.lang.NullPointerException
javax.faces.FacesException: #{sharedStore.sendText}: /layout/
chatpanel.xhtml @34,38 action="#{sharedStore.sendText}":
java.lang.NullPointerException
at com.sun.faces.application.ActionListenerImpl.processAction
(ActionListenerImpl.java:118)
at javax.faces.component.UICommand.broadcast(UICommand.java:387)
at org.ajax4jsf.component.AjaxActionComponent.broadcast
(AjaxActionComponent.java:55)
at org.ajax4jsf.component.AjaxViewRoot.processEvents
(AjaxViewRoot.java:321)
at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents
(AjaxViewRoot.java:296)
at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:
253)
at org.ajax4jsf.component.AjaxViewRoot.processApplication
(AjaxViewRoot.java:466)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute
(InvokeApplicationPhase.java:82)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:
118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:206)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
(SeamFilter.java:83)
at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
(SeamFilter.java:69)
at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:
90)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
(SeamFilter.java:69)
at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:
64)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
(SeamFilter.java:69)
at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
(SeamFilter.java:69)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:
177)
at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:267)
at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest
(BaseFilter.java:380)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:507)
at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
(SeamFilter.java:69)
at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
(SeamFilter.java:69)
at org.jboss.seam.web.HotDeployFilter.doFilter(HotDeployFilter.java:
53)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
(SeamFilter.java:69)
at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter
(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:230)
at org.mobicents.servlet.sip.startup.SipStandardContextValve.invoke
(SipStandardContextValve.java:218)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke
(SecurityAssociationValve.java:182)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke
(AuthenticatorBase.java:432)
at org.jboss.web.tomcat.security.JaccContextValve.invoke
(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke
(CachedConnectionValve.java:157)
at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service
(CoyoteAdapter.java:262)
at org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:
446)
at java.lang.Thread.run(Thread.java:595)
Caused by: javax.faces.el.EvaluationException: /layout/chatpanel.xhtml
@34,38 action="#{sharedStore.sendText}":
java.lang.NullPointerException
at com.sun.facelets.el.LegacyMethodBinding.invoke
(LegacyMethodBinding.java:73)
at com.sun.faces.application.ActionListenerImpl.processAction
(ActionListenerImpl.java:102)
... 51 more
Caused by: java.lang.NullPointerException
at org.prism.seample.session.ChatAction.sendToUser(ChatAction.java:
32)
at org.prism.seample.session.StaticSharedStore.sendText
(StaticSharedStore.java:62)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
at org.jboss.seam.intercept.RootInvocationContext.proceed
(RootInvocationContext.java:31)
at org.jboss.seam.intercept.SeamInvocationContext.proceed
(SeamInvocationContext.java:56)
at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke
(RollbackInterceptor.java:28)
at org.jboss.seam.intercept.SeamInvocationContext.proceed
(SeamInvocationContext.java:68)
at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke
(MethodContextInterceptor.java:44)
at org.jboss.seam.intercept.SeamInvocationContext.proceed
(SeamInvocationContext.java:68)
at org.jboss.seam.intercept.RootInterceptor.invoke
(RootInterceptor.java:107)
at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation
(JavaBeanInterceptor.java:185)
at org.jboss.seam.intercept.JavaBeanInterceptor.invoke
(JavaBeanInterceptor.java:103)
at org.prism.seample.session.StaticSharedStore_$$_javassist_6.sendText
(StaticSharedStore_$$_javassist_6.java)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:
329)
at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:
342)
at org.jboss.el.parser.AstPropertySuffix.invoke
(AstPropertySuffix.java:58)
at org.jboss.el.parser.AstValue.invoke(AstValue.java:96)
at org.jboss.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:
276)
at com.sun.facelets.el.TagMethodExpression.invoke
(TagMethodExpression.java:68)
at com.sun.facelets.el.LegacyMethodBinding.invoke
(LegacyMethodBinding.java:69)
... 52 more
13:28:59,937 ERROR [lifecycle] JSF1054: (Phase ID: INVOKE_APPLICATION
5, View ID: /home.xhtml) Exception thrown during phase execution:
javax.faces.event.PhaseEvent
[source=com.sun.faces.lifecycle.LifecycleImpl@2ff27c]
13:29:00,114 WARN [ExceptionFilter] handling uncaught exception
javax.servlet.ServletException: #{sharedStore.sendText}: /layout/
chatpanel.xhtml @34,38 action="#{sharedStore.sendText}":
java.lang.NullPointerException
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:277)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:206)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
(SeamFilter.java:83)
at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
(SeamFilter.java:69)
at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:
90)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
(SeamFilter.java:69)
at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:
64)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
(SeamFilter.java:69)
at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
(SeamFilter.java:69)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:
177)
at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:267)
at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest
(BaseFilter.java:380)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:507)
at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
(SeamFilter.java:69)
at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
(SeamFilter.java:69)
at org.jboss.seam.web.HotDeployFilter.doFilter(HotDeployFilter.java:
53)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
(SeamFilter.java:69)
at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter
(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:230)
at org.mobicents.servlet.sip.startup.SipStandardContextValve.invoke
(SipStandardContextValve.java:218)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke
(SecurityAssociationValve.java:182)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke
(AuthenticatorBase.java:432)
at org.jboss.web.tomcat.security.JaccContextValve.invoke
(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke
(CachedConnectionValve.java:157)
at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service
(CoyoteAdapter.java:262)
at org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:
446)
at java.lang.Thread.run(Thread.java:595)
Caused by: javax.faces.FacesException: #{sharedStore.sendText}: /
layout/chatpanel.xhtml @34,38 action="#{sharedStore.sendText}":
java.lang.NullPointerException
at com.sun.faces.application.ActionListenerImpl.processAction
(ActionListenerImpl.java:118)
at javax.faces.component.UICommand.broadcast(UICommand.java:387)
at org.ajax4jsf.component.AjaxActionComponent.broadcast
(AjaxActionComponent.java:55)
at org.ajax4jsf.component.AjaxViewRoot.processEvents
(AjaxViewRoot.java:321)
at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents
(AjaxViewRoot.java:296)
at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:
253)
at org.ajax4jsf.component.AjaxViewRoot.processApplication
(AjaxViewRoot.java:466)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute
(InvokeApplicationPhase.java:82)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:
118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
... 41 more
Caused by: javax.faces.el.EvaluationException: /layout/chatpanel.xhtml
@34,38 action="#{sharedStore.sendText}":
java.lang.NullPointerException
at com.sun.facelets.el.LegacyMethodBinding.invoke
(LegacyMethodBinding.java:73)
at com.sun.faces.application.ActionListenerImpl.processAction
(ActionListenerImpl.java:102)
... 51 more
Caused by: java.lang.NullPointerException
at org.prism.seample.session.ChatAction.sendToUser(ChatAction.java:
32)
at org.prism.seample.session.StaticSharedStore.sendText
(StaticSharedStore.java:62)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
at org.jboss.seam.intercept.RootInvocationContext.proceed
(RootInvocationContext.java:31)
at org.jboss.seam.intercept.SeamInvocationContext.proceed
(SeamInvocationContext.java:56)
at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke
(RollbackInterceptor.java:28)
at org.jboss.seam.intercept.SeamInvocationContext.proceed
(SeamInvocationContext.java:68)
at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke
(MethodContextInterceptor.java:44)
at org.jboss.seam.intercept.SeamInvocationContext.proceed
(SeamInvocationContext.java:68)
at org.jboss.seam.intercept.RootInterceptor.invoke
(RootInterceptor.java:107)
at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation
(JavaBeanInterceptor.java:185)
at org.jboss.seam.intercept.JavaBeanInterceptor.invoke
(JavaBeanInterceptor.java:103)
at org.prism.seample.session.StaticSharedStore_$$_javassist_6.sendText
(StaticSharedStore_$$_javassist_6.java)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:
329)
at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:
342)
at org.jboss.el.parser.AstPropertySuffix.invoke
(AstPropertySuffix.java:58)
at org.jboss.el.parser.AstValue.invoke(AstValue.java:96)
at org.jboss.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:
276)
at com.sun.facelets.el.TagMethodExpression.invoke
(TagMethodExpression.java:68)
at com.sun.facelets.el.LegacyMethodBinding.invoke
(LegacyMethodBinding.java:69)
... 52 more
13:29:00,122 WARN [ExceptionFilter] exception root cause
javax.faces.FacesException: #{sharedStore.sendText}: /layout/
chatpanel.xhtml @34,38 action="#{sharedStore.sendText}":
java.lang.NullPointerException
at com.sun.faces.application.ActionListenerImpl.processAction
(ActionListenerImpl.java:118)
at javax.faces.component.UICommand.broadcast(UICommand.java:387)
at org.ajax4jsf.component.AjaxActionComponent.broadcast
(AjaxActionComponent.java:55)
at org.ajax4jsf.component.AjaxViewRoot.processEvents
(AjaxViewRoot.java:321)
at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents
(AjaxViewRoot.java:296)
at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:
253)
at org.ajax4jsf.component.AjaxViewRoot.processApplication
(AjaxViewRoot.java:466)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute
(InvokeApplicationPhase.java:82)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:
118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:206)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
(SeamFilter.java:83)
at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
(SeamFilter.java:69)
at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:
90)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
(SeamFilter.java:69)
at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:
64)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
(SeamFilter.java:69)
at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
(SeamFilter.java:69)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:
177)
at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:267)
at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest
(BaseFilter.java:380)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:507)
at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
(SeamFilter.java:69)
at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
(SeamFilter.java:69)
at org.jboss.seam.web.HotDeployFilter.doFilter(HotDeployFilter.java:
53)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
(SeamFilter.java:69)
at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter
(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:230)
at org.mobicents.servlet.sip.startup.SipStandardContextValve.invoke
(SipStandardContextValve.java:218)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke
(SecurityAssociationValve.java:182)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke
(AuthenticatorBase.java:432)
at org.jboss.web.tomcat.security.JaccContextValve.invoke
(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke
(CachedConnectionValve.java:157)
at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service
(CoyoteAdapter.java:262)
at org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:
446)
at java.lang.Thread.run(Thread.java:595)
Caused by: javax.faces.el.EvaluationException: /layout/chatpanel.xhtml
@34,38 action="#{sharedStore.sendText}":
java.lang.NullPointerException
at com.sun.facelets.el.LegacyMethodBinding.invoke
(LegacyMethodBinding.java:73)
at com.sun.faces.application.ActionListenerImpl.processAction
(ActionListenerImpl.java:102)
... 51 more
Caused by: java.lang.NullPointerException
at org.prism.seample.session.ChatAction.sendToUser(ChatAction.java:
32)
at org.prism.seample.session.StaticSharedStore.sendText
(StaticSharedStore.java:62)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
at org.jboss.seam.intercept.RootInvocationContext.proceed
(RootInvocationContext.java:31)
at org.jboss.seam.intercept.SeamInvocationContext.proceed
(SeamInvocationContext.java:56)
at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke
(RollbackInterceptor.java:28)
at org.jboss.seam.intercept.SeamInvocationContext.proceed
(SeamInvocationContext.java:68)
at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke
(MethodContextInterceptor.java:44)
at org.jboss.seam.intercept.SeamInvocationContext.proceed
(SeamInvocationContext.java:68)
at org.jboss.seam.intercept.RootInterceptor.invoke
(RootInterceptor.java:107)
at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation
(JavaBeanInterceptor.java:185)
at org.jboss.seam.intercept.JavaBeanInterceptor.invoke
(JavaBeanInterceptor.java:103)
at org.prism.seample.session.StaticSharedStore_$$_javassist_6.sendText
(StaticSharedStore_$$_javassist_6.java)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:
329)
at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:
342)
at org.jboss.el.parser.AstPropertySuffix.invoke
(AstPropertySuffix.java:58)
at org.jboss.el.parser.AstValue.invoke(AstValue.java:96)
at org.jboss.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:
276)
at com.sun.facelets.el.TagMethodExpression.invoke
(TagMethodExpression.java:68)
at com.sun.facelets.el.LegacyMethodBinding.invoke
(LegacyMethodBinding.java:69)
... 52 more

zubeen

unread,
Jun 17, 2009, 4:03:06 AM6/17/09
to mobicents-public
CODE:
ChatAction.java
package org.prism.seample.session;

import java.io.IOException;

import javax.annotation.Resource;
import javax.servlet.sip.Address;
import javax.servlet.sip.ServletParseException;
import javax.servlet.sip.SipApplicationSession;
import javax.servlet.sip.SipFactory;
import javax.servlet.sip.SipServletRequest;
import javax.servlet.sip.SipURI;
import javax.servlet.sip.URI;

import org.jboss.seam.annotations.AutoCreate;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Logger;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.log.Log;

@Name("chatAction")
//@Scope(ScopeType.STATELESS)
@AutoCreate
public class ChatAction {
@Logger
private static Log log;
@Resource
SipFactory sipFactory;

void sendToUser(String to, String message)
throws ServletParseException, IOException {
SipApplicationSession session= sipFactory.createApplicationSession
();
SipURI from = sipFactory.createSipURI("zubeen","localhost");
SipServletRequest request = sipFactory.createRequest(session,
"MESSAGE",from.toString(), to);
request.setContent(message.getBytes(), "text/plain");
request.send();
}


}

SharedStaticStore.java
package org.prism.seample.session;

import java.io.IOException;
import java.util.EventListener;
import java.util.EventObject;
import java.util.LinkedList;

import javax.annotation.Resource;
import javax.servlet.sip.ServletParseException;
import javax.servlet.sip.SipApplicationSession;
import javax.servlet.sip.SipFactory;
import javax.servlet.sip.SipServletRequest;
import javax.servlet.sip.SipSession;
import javax.servlet.sip.SipURI;

import org.ajax4jsf.event.PushEventListener;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.prism.seample.session.ChatAction;


@Name("sharedStore")
@Scope(ScopeType.STATELESS)

public class StaticSharedStore {
public static LinkedList<String> chat = new LinkedList<String>();
public static String message = new String ();
public static String text = new String();
private static LinkedList<PushEventListener> listeners = new
LinkedList<PushEventListener>();
/*@In (required = false)
SipApplicationSession session;
@In (required = false)*/
@Resource
SipFactory factory;

public void addListener(EventListener eventListener) {
listeners.add((PushEventListener) eventListener);
}

public LinkedList<String> getChat() {
return chat;
}

public String getText() {
return text;
}

public void setText(String text) {
this.text = text;
}

public void sendText()
{
System.out.println("send : "+this.text);
StaticSharedStore.chat.offer("me:"+this.text);
// makeDirty is what actually causes the refresh
StaticSharedStore.makeDirty();
try {
ChatAction ca=new ChatAction();
ca.sendToUser("sip:zubeen@localhost:5062",this.text);
} catch (ServletParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public String getMessage() {
return message;
}
public void setChat(String chat) {
this.chat.offer(chat);
}

public void reset() {
chat = new LinkedList<String>();
}

/*
* This method causes the update in the Web Page through Server Push.
* It just notifies the subscribed listeners. The listeners come from
* the a4j:push control everytime someone loads the page from a
broswer.
*
* We start a new thread everytime because otherwise the Seam
contexts
* will be propagated in the Web Pages, which will cause confusion in
* multiuser enviroments where the Web Page would have session-
speific
* data (the session is part of the the Seam context).
*/

public static void makeDirty() {
for(final PushEventListener listener : listeners) {
new Thread() {
public void run() {
listener.onEvent(new EventObject(this));
}
}.start();
}
}

}

Jean Deruelle

unread,
Jun 17, 2009, 4:19:20 AM6/17/09
to mobicent...@googlegroups.com
You sipFactory was not injected, you need to specifically states which application you're accessing
depending on the name of your application
@Resource(mappedName="java:/sip/<appname>/SipFactory") SipFactory sipFactory;

where <appname> is the app name defined in your sip.xml

Alternatively you can use the @In annotation instead.

zubeen

unread,
Jun 17, 2009, 4:57:03 AM6/17/09
to mobicents-public
thanks...made the change...but same exception

Vladimir Ralev

unread,
Jun 17, 2009, 6:03:53 AM6/17/09
to mobicent...@googlegroups.com
@In SipFactory sipFactory is the right way to do it. It should work from any context
Only @In SipSession sipSession would fail when called from Web context (as SIP Sessions do not exsis in web context anyway).

zubeen

unread,
Jun 17, 2009, 7:21:03 AM6/17/09
to mobicents-public
ie i wont be able to create a SipApplicationSession from the web
context?

zubeen

unread,
Jun 17, 2009, 7:34:45 AM6/17/09
to mobicents-public
also, could u please direct me to the file in the IPBX where
SipSession are stored in a global store.

Vladimir Ralev

unread,
Jun 17, 2009, 7:39:00 AM6/17/09
to mobicent...@googlegroups.com
You can still create a SipApplicationSession the web context, you can also create a SipSession from the web context. You can also create many sip app sessions and many sip sessions from a single web context. Thus a 1 to 1 mapping between a web context and a SipSession doesn't exist, that is why it is not possible to inject a SipSession in web context.

You can inject SipFactory as it is only one per application.

Vladimir Ralev

unread,
Jun 17, 2009, 7:40:40 AM6/17/09
to mobicent...@googlegroups.com
It is a bit more complicated in IPBX. The SipSession is stored in http://code.google.com/p/mobicents/source/browse/trunk/applications/ipbx/src/hot/org/mobicents/ipbx/session/call/model/CallParticipant.java
Then the CallParticipant is organized by http://code.google.com/p/mobicents/source/browse/trunk/applications/ipbx/src/hot/org/mobicents/ipbx/session/call/model/CallParticipantManager.java

and other references to the SipSessions and CallParticipants are used in other structures

zubeen

unread,
Jun 17, 2009, 7:41:28 AM6/17/09
to mobicents-public
also, im getting a null pointer exception at:
SipApplicationSession session= sipFactory.createApplicationSession
();
wether i use @In or @Resource....i think i have got some concept
wrong...as the similar thing was working in a simple sip servlet but
is not working with SEAM TELCO..

Vladimir Ralev

unread,
Jun 17, 2009, 7:54:26 AM6/17/09
to mobicent...@googlegroups.com
I will update the converged demo with something like what you are trying to do. Possibly that would help.

Vladimir Ralev

unread,
Jun 17, 2009, 8:14:58 AM6/17/09
to mobicent...@googlegroups.com
I think I found a probably cause of the wrong behaviour. It seems I deleted the components.properties from src/main the the converged demo app, if you based your app on it, can you check if it's there for you?

Vladimir Ralev

unread,
Jun 17, 2009, 9:03:03 AM6/17/09
to mobicent...@googlegroups.com
Event a missing components.properties should not have that behaviour, so it's still a mystery. One possible reason I can thing of is if you are raising an asynchronous event or have a method annotated with @Asynchrouns. In this case there are special rules on context propagation, only the application context is present inside these methods, if you have any.

Otherwise, I updated the converged demo with click2call function, you can examine the code here http://mobicents.googlecode.com/svn/trunk/frameworks/sip-servlets/seam-telco-framework/examples/converged-demo

zubeen

unread,
Jun 17, 2009, 9:40:11 AM6/17/09
to mobicents-public
thanks....i found my mistake too ...

Jean Deruelle

unread,
Jun 17, 2009, 9:42:31 AM6/17/09
to mobicent...@googlegroups.com
What was it ? :-)

zubeen

unread,
Jun 17, 2009, 2:18:45 PM6/17/09
to mobicents-public
mayb it was dirty convoluted code a fn in th sahred store creating
an instance of ChatAction...changed it..called chat action frm the
facelet...prob solved.
now i try to get the request which has beed set as a session attribute
in doInvite...to get the address (which i was previously harcoding to
test)but
GET AN EXCEPTION Caused by: org.jboss.seam.RequiredException: @In
attribute requires non-null value: chatAction.sipSession

public class ChatAction {
@Logger
private static Log log;
//@Resource(mappedName="java:/sip/Seample/SipFactory")
@In(required=false) SipFactory sipFactory;
@In(required=false) SipSession sipSession;

public void sendText(String text)
{
System.out.println("ChatAction : "+text);
StaticSharedStore.chat.offer("me:"+text);
// makeDirty is what actually causes the refresh
StaticSharedStore.makeDirty();

SipServletRequest request= (SipServletRequest)sipSession.getAttribute
("request");<----HERE i try to get the previuosly set attribute...
try {
sendToUser(request.getFrom().toString(),text);
} catch (ServletParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
void sendToUser(String to, String message)
throws ServletParseException, IOException {
System.out.println(to+" : "+message);
SipApplicationSession session= sipFactory.createApplicationSession
();
SipURI from = sipFactory.createSipURI("zubeen","localhost");
SipURI to1 = sipFactory.createSipURI("zubeen","localhost");
to1.setPort(5063);
SipServletRequest request = sipFactory.createRequest(session,
"MESSAGE",from.toString(), to.toString());
request.setContent(message.getBytes(), "text/plain");
request.send();
}


}

Vladimir Ralev

unread,
Jun 17, 2009, 2:50:12 PM6/17/09
to mobicent...@googlegroups.com
You should post the whole call stack to be sure what's going on, but I am 90% certain that you are calling sendText from a Web page (web context) and as I explained before you can not inject SipSession from Web Context. Web contexts have HttpSession, not SIP session. Just like you dont have an HTTP session for SIP messages. Injecting SipSession from HTTP just doesnt make sense.

When you need a particular SipSession from HTTP context you need to first store the SipSession in some known shared location and then recall it in the web context from that location.

Again, IPBX for example. As soon as a SipSession is created it is stroed in the  CallParticipant object, which is then stored in a map (shared location). When I need the SipSession from HTTP context (to send BYE for example) I just lookup the participant by her name and take the SipSession from there.

zubeen

unread,
Jun 18, 2009, 1:10:46 AM6/18/09
to mobicents-public
but then..you have the name store somewhere...
for me...i need to store the uri somewhere (when getting the invite)
and retain it...while sending the chat message(which is getting called
frm the web context)...im confused :(

Vladimir Ralev

unread,
Jun 18, 2009, 3:15:19 AM6/18/09
to mobicent...@googlegroups.com
Well, when you are in web context and you know that you want to send a chat message to some uri, then you could use the uri as a key for a map that associated uris to SipSessions.

I understand your confusion if you are thinking in terms of HTTP sessions, where this is not allowed. Sip Sessions however can be stored anywhere and used at anytime.

I guess the scenario you want to make is as follows:
1. INVITE comes in and you handle it
2. You take the SIP session for that INVITE and store it in a map like this:
map.put(request.getFrom.getURI(), request.getSession());
3. When you want to send a mesage to some person from the Web UI you just need the SipSession of the person, you look the map and take the SipSession

Also note that in your case you probably want to send SIP MESSAGE requests to the phone. There is a shortcut in this particular case that you could use. SIP MESSAGE is a special request that doesn't need to belong to a particular SipSession (it may or may not). You can just create the request using the sipFactory and send it using a new session (i.e. the mapping is not really requiered).
Reply all
Reply to author
Forward
0 new messages