[asterisk-bugs] [JIRA] (ASTERISK-22939) Missing/wrong local party in dialog-info NOTIFY body
Pietro Bertera (JIRA)
noreply at issues.asterisk.org
Wed Dec 4 10:05:03 CST 2013
[ https://issues.asterisk.org/jira/browse/ASTERISK-22939?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Pietro Bertera updated ASTERISK-22939:
--------------------------------------
Description:
When Asterisk sends the NOTIFY for dialog-info subscriptions the body must contains local end remote parties informations (if notifycid is enabled in sip.conf).
In latest Asterisk certified (1.8.15-cert3) the local party contained into the XML body is wrong:
Here an example:
{code:xml}
<?xml version="1.0"?>
<dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info" version="3" state="full" entity="sip:151 at 172.16.18.40">
<dialog id="151" call-id="pickup-529f3da7a0f9-kl0tcqsb55r2" local-tag="hd7xevk85l" remote-tag="as5ef372fc" direction="recipient">
<remote>
<identity display="152">sip:152 at 172.16.18.40</identity>
<target uri="sip:152 at 172.16.18.40"/>
</remote>
<local>
<identity display="">sip:@172.16.18.40</identity>
<target uri="sip:@172.16.18.40"/>
</local>
<state>early</state>
</dialog>
</dialog-info>
{code}
as you can see the extension part is missing from the local/identiy and local/target tags.
You can see as well in the attached pcap trace [^Asterisk-notifycid.pcap] (packet #8)
You can easy reproduce using the below configuration:
*extensions.conf:*
{noformat}
[general]
static=yes
writeprotect=no
clearglobalvars=no
[globals]
[default]
[from-sip]
exten => _X.,hint,SIP/${EXTEN}
exten => _X.,1,Answer()
exten => _X.,n,Dial(SIP/${EXTEN},30)
{noformat}
*sip.conf:*
{noformat}
[general]
allowsubscribe=yes
notifyringing=yes
notifyhold=yes
call-limit=99
notifycid=ignore-context
counteronpeer=no
progressinband=never
pickupgroup=1
canreinvite=yes
[basic](!)
context=from-sip
subscribecontext=from-sip
call-limit=10
progressinband=never
type=friend
[150](basic)
secret=1234
host=dynamic
type=friend
[151](basic)
secret=1234
host=dynamic
type=friend
[152](basic)
secret=1234
host=dynamic
type=friend
{noformat}
*Reproduction steps:*
- register 3 devices (A,B,C) against defined extensions,
- configure a device (A) to subscribe for dialog-info events against extension B
- device B calls device C
Attached patch [^ASTERISK-16735-local-dialoginfo.patch] provides a fallback mechanism in case of extension part is missing.
Oldest Asterisk versions are not affected (tested 1.8.11).
was:
When Asterisk sends the NOTIFY for dialog-info subscriptions the body must contains local end remote parties informations (if notifycid is enabled in sip.conf).
In latest Asterisk certified (1.8.15-cert3) the local party contained into the XML body is wrong:
Here an example:
{code:xml}
<?xml version="1.0"?>
<dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info" version="3" state="full" entity="sip:151 at 172.16.18.40">
<dialog id="151" call-id="pickup-529f3da7a0f9-kl0tcqsb55r2" local-tag="hd7xevk85l" remote-tag="as5ef372fc" direction="recipient">
<remote>
<identity display="152">sip:152 at 172.16.18.40</identity>
<target uri="sip:152 at 172.16.18.40"/>
</remote>
<local>
<identity display="">sip:@172.16.18.40</identity>
<target uri="sip:@172.16.18.40"/>
</local>
<state>early</state>
</dialog>
</dialog-info>
{code}
as you can see the extension part is missing from the local/identiy and local/target tags.
You can see as well in the attached pcap trace [^Asterisk-notifycid.pcap] (packet #8)
extensions.conf:
{noformat}
[general]
static=yes
writeprotect=no
clearglobalvars=no
[globals]
[default]
[from-sip]
exten => _X.,hint,SIP/${EXTEN}
exten => _X.,1,Answer()
exten => _X.,n,Dial(SIP/${EXTEN},30)
{noformat}
sip.conf:
{noformat}
[general]
allowsubscribe=yes
notifyringing=yes
notifyhold=yes
call-limit=99
notifycid=ignore-context
counteronpeer=no
progressinband=never
pickupgroup=1
canreinvite=yes
[basic](!)
context=from-sip
subscribecontext=from-sip
call-limit=10
progressinband=never
type=friend
[150](basic)
secret=1234
host=dynamic
type=friend
[151](basic)
secret=1234
host=dynamic
type=friend
[152](basic)
secret=1234
host=dynamic
type=friend
{noformat}
Attached patch [^ASTERISK-16735-local-dialoginfo.patch] provides a fallback mechanism in case of extension part is missing.
Oldest Asterisk versions are not affected (tested 1.8.11).
> Missing/wrong local party in dialog-info NOTIFY body
> ----------------------------------------------------
>
> Key: ASTERISK-22939
> URL: https://issues.asterisk.org/jira/browse/ASTERISK-22939
> Project: Asterisk
> Issue Type: Bug
> Security Level: None
> Components: Channels/chan_sip/Subscriptions
> Affects Versions: 1.8.15.0
> Reporter: Pietro Bertera
> Attachments: ASTERISK-16735-local-dialoginfo.patch, Asterisk-notifycid.pcap
>
>
> When Asterisk sends the NOTIFY for dialog-info subscriptions the body must contains local end remote parties informations (if notifycid is enabled in sip.conf).
> In latest Asterisk certified (1.8.15-cert3) the local party contained into the XML body is wrong:
> Here an example:
> {code:xml}
> <?xml version="1.0"?>
> <dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info" version="3" state="full" entity="sip:151 at 172.16.18.40">
> <dialog id="151" call-id="pickup-529f3da7a0f9-kl0tcqsb55r2" local-tag="hd7xevk85l" remote-tag="as5ef372fc" direction="recipient">
> <remote>
> <identity display="152">sip:152 at 172.16.18.40</identity>
> <target uri="sip:152 at 172.16.18.40"/>
> </remote>
> <local>
> <identity display="">sip:@172.16.18.40</identity>
> <target uri="sip:@172.16.18.40"/>
> </local>
> <state>early</state>
> </dialog>
> </dialog-info>
> {code}
> as you can see the extension part is missing from the local/identiy and local/target tags.
> You can see as well in the attached pcap trace [^Asterisk-notifycid.pcap] (packet #8)
> You can easy reproduce using the below configuration:
> *extensions.conf:*
> {noformat}
> [general]
> static=yes
> writeprotect=no
> clearglobalvars=no
> [globals]
> [default]
> [from-sip]
> exten => _X.,hint,SIP/${EXTEN}
> exten => _X.,1,Answer()
> exten => _X.,n,Dial(SIP/${EXTEN},30)
> {noformat}
> *sip.conf:*
> {noformat}
> [general]
> allowsubscribe=yes
> notifyringing=yes
> notifyhold=yes
> call-limit=99
> notifycid=ignore-context
> counteronpeer=no
> progressinband=never
> pickupgroup=1
> canreinvite=yes
> [basic](!)
> context=from-sip
> subscribecontext=from-sip
> call-limit=10
> progressinband=never
> type=friend
> [150](basic)
> secret=1234
> host=dynamic
> type=friend
> [151](basic)
> secret=1234
> host=dynamic
> type=friend
> [152](basic)
> secret=1234
> host=dynamic
> type=friend
> {noformat}
> *Reproduction steps:*
> - register 3 devices (A,B,C) against defined extensions,
> - configure a device (A) to subscribe for dialog-info events against extension B
> - device B calls device C
> Attached patch [^ASTERISK-16735-local-dialoginfo.patch] provides a fallback mechanism in case of extension part is missing.
> Oldest Asterisk versions are not affected (tested 1.8.11).
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.asterisk.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the asterisk-bugs
mailing list