PJSIP - Handsets cannot subscribe to answer calls

Hi,

Can anyone help me? I get these errors when handsets register:

[Jun 26 12:21:58] WARNING[14345]: res_pjsip_pubsub.c:608 subscription_get_handler_from_rdata: No registered subscribe handler for event presence.winfo
[Jun 26 12:21:58] WARNING[21903]: res_pjsip_pubsub.c:2864 pubsub_on_rx_publish_request: No registered publish handler for event presence
[Jun 26 12:21:58] WARNING[14345]: res_pjsip_mwi.c:679 mwi_new_subscribe: AOR 6002 has no configured mailboxes. MWI subscription failed

(using PJSIP on Asterisk 13)
I’m not too worried about the third message, but the first two mean that the extensions don’t respond when called.

pjsip.conf:
[size=85][i][simpletrans]
type=transport
protocol=udp
bind=0.0.0.0:5060

[6001]
type=endpoint
context=from-internal
disallow=all
allow=ulaw
auth=auth6001
aors=6001

force_rport=yes
direct_media=no
rtp_symmetric=yes

[auth6001]
type=auth
auth_type=userpass
password=MYPASS
username=6001

[6001]
type=aor
max_contacts=1[/i][/size]

The server is not behind a firewall at present, but the handsets are behind a NAT. Handsets are able to successfully call out to external numbers, and two way conversation works fine.
Calling one extension from another results in this message:

Auto fallthrough, channel ‘PJSIP/6002-00000028’ status is ‘UNKNOWN’
(example is from extn 6001 calling extn 6002)

Thanks for your help

Your analysis is incorrect. Those subscription messages do not mean they can’t receive calls. It means that a device can’t subscribe to something using the “presence.winfo” type and that a device can’t publish its presence status. This is normal as neither chan_sip or chan_pjsip implement these.

Your real problem is that you don’t have “rewrite_contact=yes” in the endpoint configuration. Without that it will use the IP address provided in the Contact header (which is likely the LAN IP) instead of the source address.

Thanks - You’ve saved me a big wild-goose-chase there - it’s great to know I should ignore those messages!

I’ve added the lines as suggested.
Calling one extension from another still doesn’t work though. Here is the output:

– Executing [6001@from-internal:1] Dial(“PJSIP/6002-0000003c”, “PJSIP/6001”) in new stack
– Called PJSIP/6001
== Everyone is busy/congested at this time (1:0/0/1)
– Auto fallthrough, channel ‘PJSIP/6002-0000003c’ status is ‘CHANUNAVAIL’

Nothing actually happens with the receiving extension (and it still has a dial tone if I try to pick up).

The context in extensions.conf contains:
exten => 6001,1,Dial(PJSIP/6001)
exten => 6002,1,Dial(PJSIP/6002)
exten => 6003,1,Dial(PJSIP/6003)

Does that seem right?

What is the output of “pjsip show aor 6001”?

Did the devices re-REGISTER?

What is the output with “pjsip set logger on” turned on?

Solved.
The devices hadn’t re-Registered. (duh!)

Thanks so much - I have a feeling you just saved me a lot of time.