> 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

Reply via email to