It skips exactly at line 4213 in sofia_presence.c

.. if (count != 1) { ..

 

count is initialized with 1 and never overwritten because the check in line 4204

… if (sofia_test_pflag(profile, PFLAG_MULTIREG) && !open) { …

always evaluates to false because var open is initialized to 1 and never overwritten after the init.

This seems like a bug or is it intentional ?

 

However, looking at the code brings me to one question:

Is the table sip_presence intended to be filled when only one phone registred to one user changes its presence (so no multi registration is used) ?

 

Thanks

gw

 

 

Von: freeswitch-dev-bounces@lists.freeswitch.org [mailto:freeswitch-dev-bounces@lists.freeswitch.org] Im Auftrag von Anthony Minessale
Gesendet: Freitag, 26. Oktober 2012 19:34
An: freeswitch-dev@lists.freeswitch.org
Betreff: Re: [Freeswitch-dev] Question about sofia_presence.c

 

Well add some debug lines and try to see why it doesn't work.  Probably the xml is not the same as the other supported phones or something silly.  Just put log printf all over the place in the function to see where it skips.

 

On Fri, Oct 26, 2012 at 3:21 AM, Gerald Weber <gerald.weber@besharp.at> wrote:

I set presence debug to 10 and posted the output to pastebin:

 

http://pastebin.freeswitch.com/20131

 

Von: freeswitch-dev-bounces@lists.freeswitch.org [mailto:freeswitch-dev-bounces@lists.freeswitch.org] Im Auftrag von Gerald Weber
Gesendet: Freitag, 26. Oktober 2012 09:36


An: freeswitch-dev@lists.freeswitch.org
Betreff: Re: [Freeswitch-dev] Question about sofia_presence.c

 

I had that alread set in sip_profiles/internal.xml together with these values:

 

<param name="manage-presence" value="true"/>

<param name="send-presence-on-register" value="true"/>

<param name="presence-probe-on-register" value="true"/>

<param name="presence-proto-lookup" value="true"/>

<param name="manage-shared-appearance" value="true"/>

<param name="dbname" value="share_presence"/>

<param name="presence-hosts" value="$${domain}"/>

 

Still no rows in sip_presence

 

 

Von: freeswitch-dev-bounces@lists.freeswitch.org [mailto:freeswitch-dev-bounces@lists.freeswitch.org] Im Auftrag von Anthony Minessale
Gesendet: Freitag, 26. Oktober 2012 00:46
An: freeswitch-dev@lists.freeswitch.org
Betreff: Re: [Freeswitch-dev] Question about sofia_presence.c

 

err in sofia profile.

 

<param name="multiple-registrations" value="true"/>

On Thu, Oct 25, 2012 at 5:45 PM, Anthony Minessale <anthony.minessale@gmail.com> wrote:

then enable the multiple-registrations param in your sofia-presence

 

On Thu, Oct 25, 2012 at 1:40 AM, Gerald Weber <gerald.weber@besharp.at> wrote:

So you mean a sip packet like this ?

 

No.     Time           Source                Destination           Protocol Length Info

     74 4.780876000    192.168.20.150        192.168.20.73         SIP/XML  1174   Request: PUBLISH sip:2001@192.168.20.73

 

Frame 74: 1174 bytes on wire (9392 bits), 1174 bytes captured (9392 bits) on interface 0

Ethernet II, Src: HewlettP_33:a8:77 (e8:39:35:33:a8:77), Dst: Vmware_8c:00:1c (00:50:56:8c:00:1c)

Internet Protocol Version 4, Src: 192.168.20.150 (192.168.20.150), Dst: 192.168.20.73 (192.168.20.73)

    Version: 4

    Header length: 20 bytes

    Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00: Not-ECT (Not ECN-Capable Transport))

    Total Length: 1160

    Identification: 0x1de8 (7656)

    Flags: 0x02 (Don't Fragment)

    Fragment offset: 0

    Time to live: 128

    Protocol: UDP (17)

    Header checksum: 0x0000 [incorrect, should be 0x2e4d (may be caused by "IP checksum offload"?)]

    Source: 192.168.20.150 (192.168.20.150)

    Destination: 192.168.20.73 (192.168.20.73)

    [Source GeoIP: Unknown]

    [Destination GeoIP: Unknown]

User Datagram Protocol, Src Port: 16066 (16066), Dst Port: sip (5060)

Session Initiation Protocol

    Request-Line: PUBLISH sip:2001@192.168.20.73 SIP/2.0

    Message Header

    Message Body

        eXtensible Markup Language

            <?xml

            <presence

                xmlns='urn:ietf:params:xml:ns:pidf'

                xmlns:dm='urn:ietf:params:xml:ns:pidf:data-model'

                xmlns:rpid='urn:ietf:params:xml:ns:pidf:rpid'

                xmlns:c='urn:ietf:params:xml:ns:pidf:cipid'

                xmlns:lt='urn:ietf:params:xml:ns:location-type'

                xmlns:caps='urn:ietf:params:xml:ns:pidf:caps'

                entity='sip:2001@192.168.20.73'>

                <tuple

                    id='t7301aa0d'>

                    <status>

                        <basic>

                        </status>

                    </tuple>

                <dm:person

                    id='p74c68736'>

                    <rpid:activities>

                        <rpid:busy/>

                        </rpid:activities>

                    <dm:note>

                        Do not disturb

                        </dm:note>

                    </dm:person>

                </presence>

 

 

This i sent from a bria3 client to fs but i dont get any entry in sip_presence because of the check in line 4204.

 

 

Von: freeswitch-dev-bounces@lists.freeswitch.org [mailto:freeswitch-dev-bounces@lists.freeswitch.org] Im Auftrag von Anthony Minessale
Gesendet: Mittwoch, 24. Oktober 2012 20:01
An: freeswitch-dev@lists.freeswitch.org
Betreff: Re: [Freeswitch-dev] Question about sofia_presence.c

 

it has to send a publish to update sip_presence using the pidf method.

 

On Wed, Oct 24, 2012 at 10:55 AM, Gerald Weber <gerald.weber@besharp.at> wrote:

Hi all,

 

i’m currently extending my list_users command to show the presence status of registered sip devices.

I have a snom 360 and a bria softphone here to test with, calling one from the other shows 2 rows in sip_dialogs table so presence

is basically working.

 

Both phones have the ability to set the presence to, e.g. busy or meeting or whatever.

 

The only problem i have is, that there is no line in sip_presence table when i change the presence on the phone (or using presence in)

Digging through the code, i found that this is  because of the if statement in src/mod/endpoints/mod_sofia/sofia_presence.c line 4204

Looks like a check for multiple registrations, but how is this intended to work with only one registration per user ?

I changed the if to if (count > 0)  for testing and i can see the correct entries in sip_registrations.

 

I’m not quite sure if i understand the purpose of this code so i didn’t raise a jira.

Is this a bug ? If not, does the sip_presence table only get filled when there are more than one registration per user ?

 

Thanks

gw

 

 

 

 

 


_________________________________________________________________________
Professional FreeSWITCH Consulting Services:
consulting@freeswitch.org
http://www.freeswitchsolutions.com

FreeSWITCH-powered IP PBX: The CudaTel Communication Server
http://www.cudatel.com

Official FreeSWITCH Sites
http://www.freeswitch.org
http://wiki.freeswitch.org
http://www.cluecon.com

FreeSWITCH-dev mailing list
FreeSWITCH-dev@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
http://www.freeswitch.org



 

--
Anthony Minessale II

FreeSWITCH http://www.freeswitch.org/
ClueCon http://www.cluecon.com/
Twitter: http://twitter.com/FreeSWITCH_wire

AIM: anthm
MSN:anthony_minessale@hotmail.com
GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com
IRC: irc.freenode.net #freeswitch

FreeSWITCH Developer Conference
sip:888@conference.freeswitch.org
googletalk:conf+888@conference.freeswitch.org
pstn:+19193869900


_________________________________________________________________________
Professional FreeSWITCH Consulting Services:
consulting@freeswitch.org
http://www.freeswitchsolutions.com

FreeSWITCH-powered IP PBX: The CudaTel Communication Server
http://www.cudatel.com

Official FreeSWITCH Sites
http://www.freeswitch.org
http://wiki.freeswitch.org
http://www.cluecon.com

FreeSWITCH-dev mailing list
FreeSWITCH-dev@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
http://www.freeswitch.org



 

--
Anthony Minessale II

FreeSWITCH http://www.freeswitch.org/
ClueCon http://www.cluecon.com/
Twitter: http://twitter.com/FreeSWITCH_wire

AIM: anthm
MSN:anthony_minessale@hotmail.com
GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com
IRC: irc.freenode.net #freeswitch

FreeSWITCH Developer Conference
sip:888@conference.freeswitch.org
googletalk:conf+888@conference.freeswitch.org
pstn:+19193869900



 

--
Anthony Minessale II

FreeSWITCH http://www.freeswitch.org/
ClueCon http://www.cluecon.com/
Twitter: http://twitter.com/FreeSWITCH_wire

AIM: anthm
MSN:anthony_minessale@hotmail.com
GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com
IRC: irc.freenode.net #freeswitch

FreeSWITCH Developer Conference
sip:888@conference.freeswitch.org
googletalk:conf+888@conference.freeswitch.org
pstn:+19193869900


_________________________________________________________________________
Professional FreeSWITCH Consulting Services:
consulting@freeswitch.org
http://www.freeswitchsolutions.com

FreeSWITCH-powered IP PBX: The CudaTel Communication Server
http://www.cudatel.com

Official FreeSWITCH Sites
http://www.freeswitch.org
http://wiki.freeswitch.org
http://www.cluecon.com

FreeSWITCH-dev mailing list
FreeSWITCH-dev@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
http://www.freeswitch.org



 

--
Anthony Minessale II

FreeSWITCH http://www.freeswitch.org/
ClueCon http://www.cluecon.com/
Twitter: http://twitter.com/FreeSWITCH_wire

AIM: anthm
MSN:anthony_minessale@hotmail.com
GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com
IRC: irc.freenode.net #freeswitch

FreeSWITCH Developer Conference
sip:888@conference.freeswitch.org
googletalk:conf+888@conference.freeswitch.org
pstn:+19193869900