We recently made the switch from chan_sip to chan_pjsip and I am trying to figure out how to resolve and issue with BLF subscriptions. It appears that the value of the Contact header in the 200 response is incorrect causing the phone to fail to resubscribe. Here’s the flow seen with chan_pjsip:
Phone Proxy Asterisk
| SUBSCRIBE sip:123@example.com | |
| -----------------------------------> | |
| | SUBSCRIBE sip:123@example.com |
| | -----------------------------------> |
| | 200 OK (Contact: <sip:1.1.1.1:5060>) |
| | <----------------------------------- |
| 200 OK (Contact: <sip:1.1.1.1:5060>) | |
| <----------------------------------- | |
... Subscription nears expiration ...
| SUBSCRIBE sip:1.1.1.1:5060 | |
| -----------------------------------> | |
| | SUBSCRIBE sip:1.1.1.1:5060 |
| | -----------------------------------> |
| | 200 OK (Contact: <sip:1.1.1.1:5060>) |
| | <----------------------------------- |
| 200 OK (Contact: <sip:1.1.1.1:5060>) | |
| <----------------------------------- | |
Compared to the flow seen with chan_sip:
Phone Proxy Asterisk
| SUBSCRIBE sip:123@example.com | |
| ---------------------------------------> | |
| | SUBSCRIBE sip:123@example.com |
| | ---------------------------------------> |
| | 200 OK (Contact: <sip:123@1.1.1.1:5060>) |
| | <--------------------------------------- |
| 200 OK (Contact: <sip:123@1.1.1.1:5060>) | |
| <--------------------------------------- | |
... Subscription nears expiration ...
| SUBSCRIBE sip:123@example.com | |
| ---------------------------------------> | |
| | SUBSCRIBE sip:123@example.com |
| | ---------------------------------------> |
| | 200 OK (Contact: <sip:123@1.1.1.1:5060>) |
| | <--------------------------------------- |
| 200 OK (Contact: <sip:123@1.1.1.1:5060>) | |
| <--------------------------------------- | |
The main difference between the two packet captures is that when using chan_sip the Contact header in the 200 OK response from Asterisk contains the extension being subscribed to and when using chan_pjsip it is missing. Is there a configuration option that will allow me to include the extension in that response?