> On July 17, 2014, 9:49 p.m., Mark Michelson wrote: > > /trunk/res/res_pjsip_outbound_publish.c, lines 71-75 > > <https://reviewboard.asterisk.org/r/3780/diff/1/?file=63302#file63302line71> > > > > This seems like an odd default behavior. I would suspect that by > > default we would actually magic up a From URI of our own based instead of > > telling the server that the message is coming from itself. > > > > Doing this when no to_uri is provided makes good sense though. > > Joshua Colp wrote: > It's a PJSIPism, and it actually makes sense (imo). In the case of > PUBLISH you are publishing information about yourself usually. It makes sense > that it should be coming from you. > > Mark Michelson wrote: > Hm, now I'm a bit confused about terminology being used. Who is the > "server" in the server_uri? The XML docs say "SIP URI of the server and > entity to publish to" . So in other words, it's the URI of the destination of > the PUBLISH request. So let's say the Asterisk server that sends the PUBLISH > is Alice, and the Asterisk server that receives the PUBLISH is Bob. You set > server_uri=b...@example.com and do not set a from_uri or to_uri. Our SIP > request would look something like: > > PUBLISH sip:b...@example.com > To: sip:b...@example.com > From: sip:b...@example.com;tag=blahblahblah > > That's what's intended? Alice is publishing information about Alice, not > Bob. If the From header is supposed to indicate the source of the > publication, I'd expect that the From would give some indication that the > publication is from Alice.
The name of the entity you are publishing to is generally yourself. I am Alice and I am publishing the state of Alice. This is speaking from a SIP perspective. You'd use server_uri=sip:al...@example.com. This only differs if you are publishing to an entity which is different than your own. I am Alice but I'm publishing the state of Bob. server_uri=sip:b...@example.com from_uri=sip:al...@example.com > On July 17, 2014, 9:49 p.m., Mark Michelson wrote: > > /trunk/res/res_pjsip_publish_asterisk.c, lines 428-430 > > <https://reviewboard.asterisk.org/r/3780/diff/1/?file=63304#file63304line428> > > > > Is there some sort of stasis cache removal you could perform here? > > Joshua Colp wrote: > So the best I could do is: > > 1. For device state do a full cache dump, run the regex against, and set > everything it matches to unknown. > 2. For mailbox state do a full cache dump, run the regex against, and set > every mailbox to 0/0 > > I would also need to extend things to store a bit of state information > about the publisher we are receiving updates from (specifically the eid). > > Thoughts? > > Mark Michelson wrote: > I wasn't thinking of simply marking devstates to unknown and mailboxes to > 0/0. I was thinking of actually removing the items from the cache entirely. > > Does a single publication convey the state of multiple resources? In > other words, is the same publication used to transmit the state of > PJSIP/Alice at eid 12345 and PJSIP/bob at eid 67890? If so, then I don't > necessarily see how you could actually remove cache items on a publication > expiration, since you could presumably still be getting those states > published from a separate publisher entirely. However, if a publisher is > guaranteed to only publish a single resource or just resources that are local > to its eid, then upon publication expiration, you could remove the specific > resource from the cache or remove all resources from that particular eid. A single publication currently conveys only a single resource (device or mailbox). A PUBLISH will only be sent for updates from the originating system, it does not act as a relay and thus has one eid. As it is I don't think I can safely manipulate the cache to produce the desired result. I can only change them to some unknown values. Matt - Thoughts? - Joshua ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviewboard.asterisk.org/r/3780/#review12723 ----------------------------------------------------------- On July 21, 2014, 12:14 p.m., Joshua Colp wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviewboard.asterisk.org/r/3780/ > ----------------------------------------------------------- > > (Updated July 21, 2014, 12:14 p.m.) > > > Review request for Asterisk Developers. > > > Repository: Asterisk > > > Description > ------- > > This adds two PJSIP modules which add outbound PUBLISH support and an > 'asterisk' event type. > > The res_pjsip_outbound_publish module is a common module which provides basic > logic for setting up outbound PUBLISH clients, handling authentication > requests, handling configuration, and lifetime. Extra modules implement > specific event types which are registered with res_pjsip_outbound_publish. > Since it takes care of configuration when an outbound PUBLISH is configured > extra configuration can be passed to the event type implementation to further > configure itself. > > The res_pjsip_publish_asterisk module implements inbound and outbound support > for an 'asterisk' event type. This event type conveys device and mailbox > state between Asterisk instances using a JSON content body. As internal > device or mailbox state changes the module sends a PUBLISH message to other > configured instances. When a PUBLISH is received the contents are examined > and a device or mailbox state change queued up within Asterisk. To restrict > what is sent and received filtering is available using regular expressions > which can reduce SIP traffic. > > A wiki page is available at > https://wiki.asterisk.org/wiki/display/~jcolp/Exchanging+Device+and+Mailbox+State+Using+PJSIP > which has some configuration details with some examples. This should also be > reviewed. > > > Diffs > ----- > > /trunk/res/res_pjsip_pubsub.exports.in 419075 > /trunk/res/res_pjsip_pubsub.c 419075 > /trunk/res/res_pjsip_publish_asterisk.c PRE-CREATION > /trunk/res/res_pjsip_outbound_publish.exports.in PRE-CREATION > /trunk/res/res_pjsip_outbound_publish.c PRE-CREATION > /trunk/include/asterisk/res_pjsip_pubsub.h 419075 > /trunk/include/asterisk/res_pjsip_outbound_publish.h PRE-CREATION > > Diff: https://reviewboard.asterisk.org/r/3780/diff/ > > > Testing > ------- > > Set up two Asterisk instances, configured both sides to publish to eachother, > made calls and manipulated voicemail. Watched PUBLISH messages go between > them and state change. > > > Thanks, > > Joshua Colp > >
-- _____________________________________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- asterisk-dev mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-dev