Re: [reSIProcate-users] clientSubscription NOTIFY problem
Hi Scott!
So far my simple watcher seems to work, thanks.
My watcher is based on the basicRegister example. If I understand it
correctly, the stack/DUM only do any processing when dum.process is
called (from basicRegister).
stack.buildFdSet(fdset);
int err = fdset.selectMilliSeconds(100);
assert ( err != -1 );
stack.process(fdset);
while(clientDum.process());
Shouldn't it be (nothing todo if select returns 0):
if (err) {
stack.process(fdset);
}
while(clientDum.process());
What happens if my application blocks during callback processing? I
guess the whole application blocks?
Further, is there a mode to let stack/dum create a thread itself for
internal processing (so that I do not need an event loop in the
application, but wait for callback events)?
And a last question: Does resiprocate contains helpers to parse the XML
bodies (presence/dialog)? If, is there a recommendation for an XML
library which fits nicely into resiprocate?
Thanks
Klaus
Am 08.06.2010 18:15, schrieb Scott Godin:
You would need to call h->acceptUpdate from the various onUpdateXXXX
callbacks.
Scott
On Tue, Jun 8, 2010 at 11:47 AM, Klaus Darilion
<klaus.mailinglists@xxxxxxxxx <mailto:klaus.mailinglists@xxxxxxxxx>> wrote:
Hi Scott!
Looks like a human error - I failed to read the logs correctly. I
see that DUM calls following functions of my subscribeHandler:
INFO | 20100608-173702.484 | basicRegister.exe | RESIP:TEST | 4280 |
basicRegister.cxx:101 | SubscriptionHandler::onNewSubscription:
DEBUG | 20100608-173702.484 | basicRegister.exe | RESIP:DUM | 4280 |
ClientSubscription.cxx:112 | no queued notify
DEBUG | 20100608-173702.484 | basicRegister.exe | RESIP:TRANSACTION
| 4280 | TimerQueue.cxx:105 | Adding application timer:
DumTimeout::Subscription ClientSubscription
sip:test_test@xxxxxxxxxxx <mailto:sip%3Atest_test@xxxxxxxxxxx>:
duration=3239 seq=1
INFO | 20100608-173702.484 | basicRegister.exe | RESIP:DUM | 4280 |
ClientSubscription.cxx:369 | [ClientSubscription] reSUBSCRIBE in 3239
INFO | 20100608-173702.484 | basicRegister.exe | RESIP:TEST | 4280 |
basicRegister.cxx:83 | SubscriptionHandler::onUpdateActive:
1. SubscriptionHandler::onNewSubscription:
2. SubscriptionHandler::onUpdateActive:
I guess in one of the callbacks I should process the NOTIFY's body
and instruct DUM to reply with 200 ok.
In which callback? How?
Thanks
Klaus
Am 08.06.2010 17:27, schrieb Scott Godin:
Hi Klaus,
You appear to doing everything correctly. Is the event header
in the
notify message set to "presence"? The resip DEBUG log should
help to
see what's going on. To log to file you should initialize the
logger as
follows:
Log::initialize(Log::File, Log::Info, argv[0], "resip.log", NULL);
Scott
On Tue, Jun 8, 2010 at 10:26 AM, Klaus Darilion
<klaus.mailinglists@xxxxxxxxx
<mailto:klaus.mailinglists@xxxxxxxxx>
<mailto:klaus.mailinglists@xxxxxxxxx
<mailto:klaus.mailinglists@xxxxxxxxx>>> wrote:
I now have added:
profile->addSupportedMethod(NOTIFY);
profile->addSupportedMimeType(NOTIFY, Mime("application",
"pidf+xml"));
Now resip responds to the incoming NOTIFY with 100 trying,
but it
still does not call back callback handler....
any ideas?
thanks
klaus
Am 08.06.2010 13:11, schrieb Klaus Darilion:
Hi!
I try to write a simple watcher. I do:
1. registration handler and perform registration -> works.
2. perform outgoing subscription -> works, but incoming
NOTIFY are
rejected with "405 Method not support".
For the clientSubscription I have done:
1. made a handler class:
class SubscriptionHandler : public
ClientSubscriptionHandler {
virtual void onUpdatePending
...
}
2. define a handler and add it to DUM:
...
DialogUsageManager clientDum(stack);
SubscriptionHandler subscriptionHandler;
clientDum.addClientSubscriptionHandler("presence",
&subscriptionHandler);
...
3. subscribe
SharedPtr<SipMessage> subMessage =
clientDum.makeSubscription(presentityAor, "presence");
clientDum.send( subMessage );
The logs do not show an error (attached). The only
strange thing
I can
spot is "Failed RequestURI validation NOTIFY
sip:test_test@xxxxx
.0.51:32036"
Any hints what I am doing wrong?
thanks
Klaus
PS: How can I log to a file?
_______________________________________________
resiprocate-users mailing list
resiprocate-users@xxxxxxxxxxxxxxx
<mailto:resiprocate-users@xxxxxxxxxxxxxxx>
<mailto:resiprocate-users@xxxxxxxxxxxxxxx
<mailto:resiprocate-users@xxxxxxxxxxxxxxx>>
List Archive:
http://list.resiprocate.org/archive/resiprocate-users/
_______________________________________________
resiprocate-users mailing list
resiprocate-users@xxxxxxxxxxxxxxx
<mailto:resiprocate-users@xxxxxxxxxxxxxxx>
<mailto:resiprocate-users@xxxxxxxxxxxxxxx
<mailto:resiprocate-users@xxxxxxxxxxxxxxx>>
List Archive:
http://list.resiprocate.org/archive/resiprocate-users/